带时区的简单日期格式
SimpleDateFormatter with Timezone
我要解析以下日期格式
26.04.2015 17:00 CET
我使用了以下模式字符串
dd.MM.yyyy HH:mm z
我正在使用 java.text.SimpleDateFormat
。但是当我尝试解析给定的字符串时,我收到 ParseException
.
我正在使用以下代码
String datestring = "26.04.2015 17:00 CET";
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm z");
Date dt = format.parse(datestring)
谁能告诉我哪里做错了?
使用小写 z
而不是大写 Z
。
你将有 dd.MM.yyyy HH:mm z
.
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm z");
System.out.println(sdf.parse("26.04.2015 17:00 CET", new ParsePosition(0)));
Sun Apr 26 12:00:00 EDT 2015
你可以看到一个演示 here。
您可以查看 SimpleDateFormat
here.
参数的完整说明
尝试SimpleDateFormat("dd.MM.yyyy HH:mm")
Benjy Kessler 的回答很好(我的赞成票)。符号z用于解析时区名称和缩写,符号Z用于解析偏移量。
唯一仍然缺少的一点是语言环境。您必须将语言环境设置为英语,因为 "CET" 是 "Central European Time" 的英文缩写。在德语中应该是 "MEZ"。
所以请尝试表达
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm z", Locale.ENGLISH);
顺便说一下,您输入的内容似乎不一致,因为您的日期是在四月,但 "CET" 建议使用冬季时间(而欧盟 EU 已经切换为夏季时间)。我希望你的格式对象足够宽容。
我要解析以下日期格式
26.04.2015 17:00 CET
我使用了以下模式字符串
dd.MM.yyyy HH:mm z
我正在使用 java.text.SimpleDateFormat
。但是当我尝试解析给定的字符串时,我收到 ParseException
.
我正在使用以下代码
String datestring = "26.04.2015 17:00 CET";
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm z");
Date dt = format.parse(datestring)
谁能告诉我哪里做错了?
使用小写 z
而不是大写 Z
。
你将有 dd.MM.yyyy HH:mm z
.
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm z");
System.out.println(sdf.parse("26.04.2015 17:00 CET", new ParsePosition(0)));
Sun Apr 26 12:00:00 EDT 2015
你可以看到一个演示 here。
您可以查看 SimpleDateFormat
here.
尝试SimpleDateFormat("dd.MM.yyyy HH:mm")
Benjy Kessler 的回答很好(我的赞成票)。符号z用于解析时区名称和缩写,符号Z用于解析偏移量。
唯一仍然缺少的一点是语言环境。您必须将语言环境设置为英语,因为 "CET" 是 "Central European Time" 的英文缩写。在德语中应该是 "MEZ"。
所以请尝试表达
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm z", Locale.ENGLISH);
顺便说一下,您输入的内容似乎不一致,因为您的日期是在四月,但 "CET" 建议使用冬季时间(而欧盟 EU 已经切换为夏季时间)。我希望你的格式对象足够宽容。