1

例如,2012-10-30T22:30:00+0300 需要显示在 2012-10-30T22:30:00-0600 (例如当地时间)需要在 java 中实现(android 应用程序)我该如何管理这样做?

4

3 回答 3

1

这就是日期:一个普遍的瞬间。显示时选择适当的时区,您将获得所需的时间字符串:

Date now = new Date();
DateFormat df = df.getDateTimeInstance();
System.out.println(df.format(now)); // now, displayed in the current time zone (examle: Germany)
df.setTimeZone(theLondonTimeZone);
System.out.println(df.format(now)); // now, displayed in the time zone of London
于 2012-11-01T08:23:17.323 回答
1
于 2020-06-17T19:28:25.887 回答
0

使用 joda 时间库最好地解决了我的问题,使用 dateTime 和 dateTime zone 如下所示:

DateTimeFormatter parser2 = ISODateTimeFormat.dateTimeNoMillis();
    DateTime dt = new DateTime();
    DateTime dt2 = new DateTime();
    dt = DateTime.parse("2012-11-05T13:00:00+0200");
    System.out.println(dt.toString());

    dt2 = DateTime.parse("2012-11-05T21:45:00-08:00");
    DateTimeZone dtz = dt2.getZone();
    System.out.println(dt.withZone(dtz).toString());
于 2012-11-07T10:03:17.570 回答