Java 从GWT解析带有时区的日期

Java 从GWT解析带有时区的日期,java,parsing,date,gwt,timezone,Java,Parsing,Date,Gwt,Timezone,我读了很多关于这个话题的类似问题,但我仍然不知道现在该怎么做。。。我试着让它简单化: 我得到了这个字符串:“Sat Jan 24 00:00:00 GMT+100 2015” 不得以任何方式修改 我现在的问题是:我应该使用什么样的模式将这个字符串解析为java.util.Date?我尝试了:“EEE MMM dd HH:mm:ss z yyyy”,但失败的原因是“不可解析的日期” 我所知道的是:如果我有相同的“Sat Jan 24 00:00:00 GMT+1:00 2015”,那么我的模式是有

我读了很多关于这个话题的类似问题,但我仍然不知道现在该怎么做。。。我试着让它简单化:

我得到了这个字符串:
“Sat Jan 24 00:00:00 GMT+100 2015”
不得以任何方式修改

我现在的问题是:我应该使用什么样的模式将这个字符串解析为java.util.Date?我尝试了:
“EEE MMM dd HH:mm:ss z yyyy”
,但失败的原因是“不可解析的日期”

我所知道的是:如果我有相同的
“Sat Jan 24 00:00:00 GMT+1:00 2015”
,那么我的模式是有效的。但是我不能(想要…)修改它

-->是否有现成的模式,是或否?

附言:我假设这个问题的结尾是所有其他问题中的一个的重复,但如果你投了赞成票,请另外回答我的大胆问题,因为我无法肯定地从那里读出它


提前问候和感谢

我认为没有一种模式能与您的时区/偏移量相匹配
GMT+100
。您可以在分析之前修改输入:

String input = "Sat Jan 24 00:00:00 GMT+100 2015";
input = input.replaceAll("([+-])(\\d+?)(\\d{2})", "$1$2:$3");

String pattern = "EEE MMM dd HH:mm:ss z yyyy";
Date date = new SimpleDateFormat(pattern, Locale.ENGLISH).parse(input);
小时必须介于0到23之间,分钟必须介于00到59之间。例如,“GMT+10”和“GMT+0010”分别表示比GMT提前10小时和10分钟

根据java时区规范,这是我发现的三字母时区三字母时区ID

为了与JDK1.1.x兼容,还支持其他一些三个字母的时区ID(如“PST”、“CTT”、“AST”)。但是,不推荐使用它们,因为同一缩写通常用于多个时区(例如,“CST”可以是美国的“中央标准时间”和“中国标准时间”),Java平台只能识别其中一个时区


所以我不认为有任何现成的模式适合你。检查另一个。

OK可能重复,因此答案肯定是“不,没有匹配模式”。我问我自己,为什么GWT要生产这样一个该死的字符串,但没关系。所以我选择了操纵。谢谢大家的回答!