0
点赞
收藏
分享

微信扫一扫

java中对时间的一些操作。


我们在开发的时候,会遇到一些操作对时间的操作,比如获取当天零时零分零秒的,获取前一天的时间的。以及获取之前7天的时间。这些都可以当作一个系列来说。

1:获取当天相关的时间。


long current=System.currentTimeMillis();//当前时间毫秒数
long zero=current/(1000*3600*24)*(1000*3600*24)- TimeZone.getDefault().getRawOffset();//今天零点零分零秒的毫秒数
long twelve=zero+24*60*60*1000-1;//今天23点59分59秒的毫秒数
//当前时间
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(current)));
//今天零点零分零秒
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(zero)));
//今天23点59分59秒
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(twelve)));


特别说明:

TimeZone.getDefault().getRawOffset();在某些linux下获取时间会出现偏差()

Calendar calendar = Calendar.getInstance();
System.out.println("目前时间:" + calendar.getTime());
System.out.println("Calendar时区::" + calendar.getTimeZone().getID());
System.out.println("user.timezone:" + System.getProperty("user.timezone"));
System.out.println("user.country:" + System.getProperty("user.country"));
System.out.println("默认时区:" + TimeZone.getDefault().getID());
   

目前时间:Thu Sep 02 14:26:53 CST 2021
Calendar时区::Asia/Shanghai
user.timezone:Asia/Shanghai
user.country:US
TimeZone默认时区:Asia/Shanghai

   这个时候就会出现问题。

2:获取昨天的时间

//昨天的这一时间的毫秒数
long yesterday=System.currentTimeMillis()-24*60*60*1000;
//昨天这一时间点
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(yesterday)));
//昨天零时零分零秒到23时59分59秒
 
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -1);
//这是昨天
Date yesterday = c.getTime();
String beginTime = DateFormatUtils.format(yesterday, "yyyy-MM-dd 00:00:00");
String endTime = DateFormatUtils.format(yesterday, "yyyy-MM-dd 23:59:59");


3:获取前几天的时间

当前时间的七天前的时间


Date nowDay=new Date();
Date oldDate = new Date(nowDay.getTime() -7 * 24 * 60 * 60 * 1000);


4:通过LocalDateTime来获取相应的时间

两天后零时零分零秒的时间


LocalDateTime dateTime = LocalDateTime.now().plusDays(2).withHour(0).withMinute(0).withSecond(0);


举报

相关推荐

0 条评论