[英]Removing time zone from Joda DateTime object
DateTimeFormatter df = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss");
DateTime temp = df.withOffserParsed().parseDateTime("1970-01-02T00:00:00");
Date date = temp.toDate();
DateTime dateTime = new DateTime(date);
long epoch_start_date = dateTime.getMillis();
System.out.println(dateTime);
这打印出1970-01-02T00:00:00.000 + 12:00
有没有办法从dateTime对象中删除时区(+12:00位)? 这导致结果时间是1970年1月2日中午12:00,而不是期望的1970年1月2日上午12:00。
这是当地时间偏离UTC / GMT。
有没有办法从dateTime对象中删除时区(+12:00位)?
是的,有办法,但这会导致错误的时间。 假设你住在斐济或基里巴斯,给出的时间是正确的时间。 它以(+12:00)表示,表示您所在的时区。
结果是结果时间是1970年1月1日中午12点,而不是期望的1970年1月1日上午12:00 。
事实并非如此,由于我给出的原因。 所需时间是1970年1月2日,而不是1月1日.GMT时间是1月1日中午12点,当地时间是1月2日凌晨12:00。
给了你适当的警告,这是你如何在时区周围工作:
DateTimeFormatter df = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss");
DateTime temp = df.parseDateTime("1970-01-02T00:00:00");
Date date = temp.toDate();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int offset = calendar.getTimeZone().getOffset(calendar.getTimeInMillis());
calendar.add(Calendar.MILLISECOND, offset);
calendar.setTimeZone(TimeZone.getTimeZone("UTC"));
DateTime dateTime = new DateTime(calendar);
System.out.println(dateTime);
请记住,通过这样做,您可能会丢弃从Joda表达UTC时间的任何好处。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.