0

我一直试图弄清楚这一点,但无法解决这个问题。我正在开发一个 android 应用程序,我想显示一个特定的日期,我想要基于我在手机上设置的时区的天数。

我的应用程序中有 Joda Time,我拥有的信息例如:

2013-05-05 9.00PM时间在 PST (GMT-8) 时区,我不知道如何做到这一点,我在谷歌和 SO 上都进行了搜索,但无法得到明确的答案。

编辑

我设法用在 SO 上找到的代码解决了我的问题

String dateString = airDate + " " + airTime.toUpperCase();

                SimpleDateFormat sourceFormat = new SimpleDateFormat("yyyy-MM-dd K:mma");
                sourceFormat.setTimeZone(TimeZone.getTimeZone("GMT-8"));

                Date parsed;

                parsed = sourceFormat.parse(dateString);
                TimeZone tz = TimeZone.getDefault();
                SimpleDateFormat destFormat = new SimpleDateFormat("yyyy-MM-dd");
                destFormat.setTimeZone(tz);

                result = destFormat.format(parsed);

但是我发现我第一次得到的时间不正确,我现在得到格式为GMT-5 +DST的时区。如果将时间设置为 20:00 并在我的 TimeZone.getTimeZone 中使用 GMT-5,我不知道如何处理 +DST,返回的时间是 22:00,这是“错误的”,因为我住在瑞典。我将不胜感激。

4

1 回答 1

0

如果您可以接受一个看起来像“2 天内”的字符串,那么您应该可以使用DateUtils.getRelativeTimeSpanString().

于 2013-04-20T04:14:29.857 回答