java判断今天,昨天,前天,不能用秒间隔

。。。。

一json optString 解析的TimesTamp  string

二long dateSec = (long) (Double.valueOf(timestamp) * 1000);

三Date date=new Date(dateSec);

四getTimestampString(date);

public static String getTimestampString(Date paramDate) {

String str = null;

long l = paramDate.getTime();

Calendar localCalendar = GregorianCalendar.getInstance();

localCalendar.setTime(paramDate);

int year = localCalendar.get(Calendar.YEAR);

if(! isSameYear(year)){ //去年,直接返回

String paramDate2str = new SimpleDateFormat("yyyy MM dd", Locale.CHINA).format(paramDate);

return paramDate2str;

}

if (isSameDay(l)) {

int i = localCalendar.get(Calendar.HOUR_OF_DAY);

if (i > 17) {

str = "晚上 HH:mm";//HH表示24小时,hh表示12小时进制,

} else if ((i >= 0) && (i <= 6)) {

str = "凌晨 HH:mm";

} else if ((i > 11) && (i <= 17)) {

str = "下午 HH:mm";

} else {

str = "上午 HH:mm";

}

} else if (isYesterday(l)) {

str = "昨天 HH:mm";

} else if (isBeforeYesterday(l)) {

str = "前天 HH:mm";

} else {

str = "M月d日 HH:mm";

}

String paramDate2str = new SimpleDateFormat(str, Locale.CHINA).format(paramDate);

return paramDate2str;

}

。。。

//   获取  今天开始结束 时间

public static TimeInfo getTodayStartAndEndTime() {

Calendar localCalendar1 = Calendar.getInstance();

localCalendar1.set(Calendar.HOUR_OF_DAY, 0);

localCalendar1.set(Calendar.MINUTE, 0);

localCalendar1.set(Calendar.SECOND, 0);

localCalendar1.set(Calendar.MILLISECOND, 0);

Date localDate1 = localCalendar1.getTime();

long l1 = localDate1.getTime();

Calendar localCalendar2 = Calendar.getInstance();

localCalendar2.set(Calendar.HOUR_OF_DAY, 23);

localCalendar2.set(Calendar.MINUTE, 59);

localCalendar2.set(Calendar.SECOND, 59);

localCalendar2.set(Calendar.MILLISECOND, 999);

Date localDate2 = localCalendar2.getTime();

long l2 = localDate2.getTime();

TimeInfo localTimeInfo = new TimeInfo();

localTimeInfo.setStartTime(l1);

localTimeInfo.setEndTime(l2);

return localTimeInfo;

}

//   获取  昨天开始结束 时间

public static TimeInfo getYesterdayStartAndEndTime() {

Calendar localCalendar1 = Calendar.getInstance();

localCalendar1.add(Calendar.DAY_OF_MONTH, -1);//5

localCalendar1.set(Calendar.HOUR_OF_DAY, 0);//11

localCalendar1.set(Calendar.MINUTE, 0);//12

localCalendar1.set(Calendar.SECOND, 0);//13

localCalendar1.set(Calendar.MILLISECOND, 0);//Calendar.MILLISECOND

Date localDate1 = localCalendar1.getTime();

long l1 = localDate1.getTime();

Calendar localCalendar2 = Calendar.getInstance();

localCalendar2.add(Calendar.DAY_OF_MONTH, -1);//5

localCalendar2.set(Calendar.HOUR_OF_DAY, 23);//11

localCalendar2.set(Calendar.MINUTE, 59);//12

localCalendar2.set(Calendar.SECOND, 59);//13

localCalendar2.set(Calendar.MILLISECOND, 999);//Calendar.MILLISECOND

Date localDate2 = localCalendar2.getTime();

long l2 = localDate2.getTime();

TimeInfo localTimeInfo = new TimeInfo();

localTimeInfo.setStartTime(l1);

localTimeInfo.setEndTime(l2);

return localTimeInfo;

}

//   获取 前天开始结束 时间

public static TimeInfo getBeforeYesterdayStartAndEndTime() {

Calendar localCalendar1 = Calendar.getInstance();

localCalendar1.add(Calendar.DAY_OF_MONTH, -2);

localCalendar1.set(Calendar.HOUR_OF_DAY, 0);

localCalendar1.set(Calendar.MINUTE, 0);

localCalendar1.set(Calendar.SECOND, 0);

localCalendar1.set(Calendar.MILLISECOND, 0);

Date localDate1 = localCalendar1.getTime();

long l1 = localDate1.getTime();

Calendar localCalendar2 = Calendar.getInstance();

localCalendar2.add(Calendar.DAY_OF_MONTH, -2);

localCalendar2.set(Calendar.HOUR_OF_DAY, 23);

localCalendar2.set(Calendar.MINUTE, 59);

localCalendar2.set(Calendar.SECOND, 59);

localCalendar2.set(Calendar.MILLISECOND, 999);

Date localDate2 = localCalendar2.getTime();

long l2 = localDate2.getTime();

TimeInfo localTimeInfo = new TimeInfo();

localTimeInfo.setStartTime(l1);

localTimeInfo.setEndTime(l2);

return localTimeInfo;

}

private static boolean isSameDay(long paramLong) {

TimeInfo localTimeInfo = getTodayStartAndEndTime();

return (paramLong > localTimeInfo.getStartTime()) && (paramLong < localTimeInfo.getEndTime());

}

private static boolean isYesterday(long paramLong) {

TimeInfo localTimeInfo = getYesterdayStartAndEndTime();

return (paramLong > localTimeInfo.getStartTime()) && (paramLong < localTimeInfo.getEndTime());

}

private static boolean isBeforeYesterday(long paramLong) {

TimeInfo localTimeInfo = getBeforeYesterdayStartAndEndTime();

return (paramLong > localTimeInfo.getStartTime()) && (paramLong < localTimeInfo.getEndTime());

}

public static boolean isSameYear(int year) {

Calendar cal = Calendar.getInstance();

int CurYear = cal.get(Calendar.YEAR);

//        Log.e("","CurYear="+CurYear);//2015

return  CurYear==year;

}

。。。。。。

public class TimeInfo {

private long startTime;

private long endTime;

public long getStartTime() {

return this.startTime;

}

public void setStartTime(long paramLong) {

this.startTime = paramLong;

}

public long getEndTime() {

return this.endTime;

}

public void setEndTime(long paramLong) {

this.endTime = paramLong;

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-18 12:36:44

java判断今天,昨天,前天,不能用秒间隔的相关文章

Java获取今天/昨天/前天的某个时间点的方法

开发时需要把如“今天 12:15” "昨天 21:21" "前天 03: 02"之类的String转换成Date,所以写了个方法,有更好的写法的话欢迎留言 1 //获取今天.昨天.前天的某个时间的方法, 如"昨天 21:21" "前天 15:15" 2 private static Date getFormatDate(String updated) throws Exception{ 3 if (updated.substr

java 判断两个时间相差的天数!

package com.datedaycha;     import java.text.SimpleDateFormat;     import java.util.Calendar;     import java.util.Date;     import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;     /*      * java 判断两个时间相差的天数     1.实现目标     输入:两

java 判断RUL访问是否有效返回状态

package com.ddln.test; import java.net.HttpURLConnection; import java.net.URL; public class URLConnect { private static URL url; private static HttpURLConnection con; private static int state = -1; /** * 功能:检测当前URL是否可连接或是否有效, * 描述:链接url地址,链接失败则返回null

Java判断两个路径对应的文件是否相同

今天遇到一个bug,查了一个小时才发现是文件路径比较出了问题: 比如有两个路径:D:\dir\..\a.txt和D:\a.txt.这两个路径写法虽然不同,但是很容易知道这两个路径指向的是同一个文件.如果我们使用Java的File去判断两个路径是否相同,判断如下: File f1 = new File("D:\\dir\\..\\a.txt"); File f2 = new File("D:\\a.txt"); System.out.println(f1.getAbs

(转)java判断string变量是否是数字的六种方法小结

java判断string变量是否是数字的六种方法小结 (2012-10-17 17:00:17) 转载▼ 标签: it 分类: 转发 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ System.out.println(str.charAt(i)); if (!Character.isDigit(str.charAt(i))){ return fal

java判断字符串是否为空的方法总结

http://blog.csdn.net/qq799499343/article/details/8492672 以下是java 判断字符串是否为空的四种方法: 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equals(s)); 方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法: if(s == null || s.length() <= 0); 方法三: Java SE 6.0 才开始提供的方法, 效率和方法二

java判断请求是否为ajax请求

/** * isAjaxRequest:判断请求是否为Ajax请求. <br/> * @param request 请求对象 * @return boolean * @since JDK 1.6 */ public boolean isAjaxRequest(HttpServletRequest request){ String header = request.getHeader("X-Requested-With"); boolean isAjax = "XM

java判断字符串是否为乱码

项目中有一个功能 在IE中GET方式提交会产生乱码 但有两个入口都会走这同一段代码 固不能直接转码,所以要进行判断传过来的该值是不是乱码 可用以下方式验证: java.nio.charset.Charset.forName("GBK").newEncoder().canEncode("测试") //判断是不是GBK编码 即是否乱码 //使用request.getQueryString()获取通过URL传过来的值 有可能是乱码 如:q=é????¥ String s

Java判断文件编码格式

转自:http://blog.csdn.net/zhangzh332/article/details/6719025 一般情况下我们遇到的文件编码格式为GBK或者UTF-8.由于中文Windows默认的编码是GBK,所以一般只要判定UTF-8编码格式. 对于UTF-8编码格式的文本文件,其前3个字节的值就是-17.-69.-65,所以,判定是否是UTF-8编码格式的代码片段如下: Java代码 java.io.File f=new java.io.File("待判定的文本文件名");

java判断一个类是否公共类

Modifier.isPublic([类].getModifiers()) Modifier.isAbstract([类].getModifiers()) java判断一个类是否公共类,布布扣,bubuko.com