【发布时间】:2014-05-25 17:43:21
【问题描述】:
我从连接器获得以下字符串:
“2014-04-11T13:25:58.025+02:00”
我也有实际时间:
Calendar cal = Calendar.getInstance();
long timeNow = cal.getTimeInMillis();
我应该定义连接器的日期是否早于 10 分钟。 所以我试着用毫秒来比较这两个日期。
//example date
String timeString = "2014-04-11T13:25:58.025+02:00";
long difference = 660000;
Calendar cSchedStartCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
cSchedStartCal.setTimeZone(TimeZone.getTimeZone("Europe/Zurich"));
cSchedStartCal = DatatypeConverter.parseDateTime(timeString);
Date date = new Date(cSchedStartCal.getTime().getTime());
if (date.getTime() + difference < timeNow) {
System.out.println("too old");
} else {
System.out.println("ok");
}
但是当日期不太旧时,我觉得它太旧了,因为时区一定有问题。
属性日期始终没有 +02:00,这就是问题所在。 是否可以以适当的方式将时区小时添加到日期?
而且我没有机会使用 joda 库。
【问题讨论】:
-
您的陈述“属性日期始终没有 +02:00,这就是问题所在”根本不清楚。
Date-objects 永远不会有内部时区偏移。为什么会这样?
标签: java parsing date calendar timezone