0

我正在开发手机应用程序。因此,发布后的应用程序将为世界各地的所有用户做好准备。我需要用用户的本地时间调整服务器时间。我想也许 Joda(我正在使用的图书馆)能够做到这一点。我的问题是如何将服务器时间更改为用户本地时间。

服务器返回“ 2013-04-17T07:43:45Z ”作为日期/时间。搜索互联网后,我可以成功地将其解析为“ 17 Apr 2013, 07:43 AM ”。这是我的方法:

private String formatFanciedDate(String date) {
        date = date.substring(0 , date.length()-1); // Removing Z otherwise crash happens

        try {
            LocalDateTime dt1 = LocalDateTime.parse(date); // Like 2013-03-30T09:04:56.123
            return dt1.toString("dd MMM yyyy, HH:mm a");
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        }

        return "";
    }

但是,这不是我的当地时间(正确的时间应该是下午 15:00 左右)。如何将这个时间更改为我的当地时间?

4

1 回答 1

5

您从输入中去除“Z”,但这是指定时区的位!Z 表示它是 UTC。如果没有这些信息,Joda 就无法理解输入。

我认为您正在寻找的是:

LocalDateTime local = new DateTime("2013-04-17T07:43:45Z").toLocalDateTime();
于 2013-04-17T09:53:17.900 回答