java时间格式

//得到long类型当前时间

long l = System.currentTimeMillis();
//new日期对象
Date date = new Date(l);
//转换提日期输出格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(date));
 
 
 
new java.sql.Date(new java.util.Date().getTime()).toString()
 
 

比较timestamp1和timestamp2很简

1
2
3
var timestamp1 = new Date('2014-11-5 21:50:00'), timestamp2 = new Date();
 
var d = timestamp1.getTime() - timestamp2.getTime();

 

writer.write(DateTimeParser.format(userRecharge.F07) + "\t");

writer.write(Formater.formatDateTime(userRecharge.auditorTime) + "\t");

 

Timestamp now = new Timestamp(System.currentTimeMillis());获得系统当前时间 格式Timestamp  年月日时分秒

 

相差天数

通常我们在项目开发中需要用到有关时间的计算问题,如:计算两个日期之间相差的天数。

public int getDays(Date start, Date end) {
    return (int) ((end.getTime() - start.getTime()) / 1000 / 60 / 60 / 24);
}

上面的计算可以计算出两个日期的相差的天数,这并没有错。那就让我们看看相隔天数究竟是什么意思?

相隔天数

只要两个日期在同一天,那相隔天数就是0,不在同一天,相隔天数就不是0。比如:

2017-02-16 23:59:59 和 2017-02-17 00:00:00 
相差天数为0,但相隔天数为1

实现代码: 
方法一: 
public int getDays(Date start, Date end) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(start);
//日期start 在本年中的第几天
int day1 = calendar.get(Calendar.DAY_OF_YEAR);

aCalendar.setTime(oDate);
//日期end 在本年中的第几天
int day2 = calendar.get(Calendar.DAY_OF_YEAR);

return day2 - day1;

}

(int) Math.abs((beginDate.getTimeInMillis() - endDate.getTimeInMillis())/(1000*60*60*24));
注意:方法一当跨年的时候会有问题,即两个日期不在同一年。

方法二:

public int getDays(Date start, Date end) {

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

   return (df.parse(df.format(end)).getTime() -df.parse(df.format(start)).getTime()) / (24 * 60 * 60 * 1000);

}

所以,是选择“相隔天数”还是“相差天数”,具体要看我们的实际需求是什么了。

posted @ 2017-12-07 08:57  无畏无违  阅读(596)  评论(0编辑  收藏  举报