我一直试图弄清楚这一点,但无法解决这个问题。我正在开发一个 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,这是“错误的”,因为我住在瑞典。我将不胜感激。