ARa*_*pal 4 java timezone datetime jodatime
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);
Run Code Online (Sandbox Code Playgroud)
这打印出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);
Run Code Online (Sandbox Code Playgroud)
请记住,通过这样做,您可能会丢弃从Joda表达UTC时间的任何好处.
| 归档时间: |
|
| 查看次数: |
7884 次 |
| 最近记录: |