将毫秒添加到日期时获得 24 小时时间?
Getting 24hr time when adding miliseconds to a Date?
我有以下 Java 代码,它需要一个日期并且应该在日期上加上一整天:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
String dateString = "2017-01-30T19:00:00+0000"
Date date = formatter.parse(dateString);
long timeBetweenStartDates = 24 * 60 * 1000;
Long DateWithOneDayAddedInMilis = date.getTime()+timeBetweenStartDates;
Date dateWithOneDayAdded = new Date((DateWithOneDayAddedInMilis));
我为 dateWithOneDayAdded
获得的价值是:
Mon Jan 30 13:24:00 GMT 2017
我在这里寻找的是:
Tue Jan 31 13:24:00 GMT 2017
如何确保日期格式符合我的预期?
哦,这是一个很好的例子,说明更新的日期和时间 类 对程序员更友好。有了这些,几乎不可能犯像你犯的错误(用旧的 类 很容易犯,特别是一旦你写完代码就很难发现)。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
String dateString = "2017-01-30T19:00:00+0000";
OffsetDateTime dateTime = OffsetDateTime.parse(dateString, formatter);
OffsetDateTime dateWithOneDayAdded = dateTime.plusDays(1);
System.out.println(dateWithOneDayAdded);
这会打印
2017-01-31T19:00Z
您当然可以按照您或您的用户喜欢的方式格式化计算的日期时间。
一个额外的好处是 plusDays()
可以很好地处理夏令时 (DST) 的转换,并在第二天(如果可能的话)到达同一时间,而不是盲目地增加 24 小时。
我有以下 Java 代码,它需要一个日期并且应该在日期上加上一整天:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
String dateString = "2017-01-30T19:00:00+0000"
Date date = formatter.parse(dateString);
long timeBetweenStartDates = 24 * 60 * 1000;
Long DateWithOneDayAddedInMilis = date.getTime()+timeBetweenStartDates;
Date dateWithOneDayAdded = new Date((DateWithOneDayAddedInMilis));
我为 dateWithOneDayAdded
获得的价值是:
Mon Jan 30 13:24:00 GMT 2017
我在这里寻找的是:
Tue Jan 31 13:24:00 GMT 2017
如何确保日期格式符合我的预期?
哦,这是一个很好的例子,说明更新的日期和时间 类 对程序员更友好。有了这些,几乎不可能犯像你犯的错误(用旧的 类 很容易犯,特别是一旦你写完代码就很难发现)。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
String dateString = "2017-01-30T19:00:00+0000";
OffsetDateTime dateTime = OffsetDateTime.parse(dateString, formatter);
OffsetDateTime dateWithOneDayAdded = dateTime.plusDays(1);
System.out.println(dateWithOneDayAdded);
这会打印
2017-01-31T19:00Z
您当然可以按照您或您的用户喜欢的方式格式化计算的日期时间。
一个额外的好处是 plusDays()
可以很好地处理夏令时 (DST) 的转换,并在第二天(如果可能的话)到达同一时间,而不是盲目地增加 24 小时。