我想将类似于
由于这些字符串时区的存在,我无法使用Joda Time的
所以,我有一个问题,你是否知道在Joda Time中绕过此限制的方法?如果可能的话,我更愿意使用Joda Time而不是标准Java API。
另一种我认为可以解决这个问题的方法是使用Java的
"20000603163334 GST"
或"20000603163334 -0300"
的字符串转换为UTC时间。问题在于,我的字符串中的时区可以是“通用时区”,也就是说它们可以是CET、GST等字符串。我不知道如何转换这些字符串。由于这些字符串时区的存在,我无法使用Joda Time的
DateTimeFormat.forPattern("yyyyMMddhhmmss z").withZone(DateTimeZone.UTC)
,因为根据文档:“无法解析时区名称('z')”。所以,我有一个问题,你是否知道在Joda Time中绕过此限制的方法?如果可能的话,我更愿意使用Joda Time而不是标准Java API。
另一种我认为可以解决这个问题的方法是使用Java的
SimpleDateFormat
。
所以我做了这样的事情:SimpleDateFormat f = new SimpleDateFormat("yyyyMMddhhmmss z");
//f.setTimeZone(TimeZone.getTimeZone("UTC"));
f.setCalendar(new GregorianCalendar(TimeZone.getTimeZone("UTC")));
Date time = f.parse("20000603163334 GST");
SimpleDateFormat
可以解析 String
(我不关心这个类解析时区名称有多个的问题 - 对我来说,它解析的就很好)。但问题是我不知道如何将其从此转换为UTC。我该怎么做呢?无论我如何设置 f
的时区为UTC(使用上述两种方式中的任意一种),都没有帮助。我希望有人能帮我解决这个问题。我在这里阅读了很多关于这个主题的问题和答案,但还没有找到解决方案。