我想通过JAVA 7以这种格式“ 2018-12-10T13:34:43.5107621-05:00”获取当前时间。
我正在使用EST时区。
答案 0 :(得分:0)
如果在EST之前是指北美东部时间(当前使用的标准时间或夏令时):
final ZoneId zone = ZoneId.of("America/New_York");
OffsetDateTime now = OffsetDateTime.now(zone);
String currentTimeString = now.toString();
System.out.println(currentTimeString);
我刚才运行此代码段时,输出为:
2019-05-08T04:05:05.303999-04:00
如果在EST之前,您指的是北美东部时间标准时间,而不考虑每年的时间,即始终为-05:00(例如,在努纳武特和金塔纳罗奥州使用的时间):>
final ZoneOffset offset = ZoneOffset.ofHours(-5);
OffsetDateTime now = OffsetDateTime.now(offset);
其余与以前一样。
2019-05-08T03:10:22.788736-05:00
如果指定的时区有意义,请使用与第一个代码段相同的方式来使用它,例如:
final ZoneId zone = ZoneId.of("America/Coral_Harbour");
您要求的格式是国际标准ISO 8601。 Java.time(现代Java日期和时间API)类通常通过其toString
方法产生这种格式。
JAVA 7中是否存在ZoneId?
编辑:您必须添加它。 ZoneId
是Java.time的一部分,它是Java 8中引入的现代Java日期和时间API,并且也向后移植到Java 6和7。因此,在使用Java 7时,请使用下面的链接向您的项目中添加ThreeTen Backport。 >
java.time
。java.time
向Java 6和7(JSR-310的ThreeTen)的反向端口。