我想解析以下Dateformat
26.04.2015 17:00 CET
我使用了以下模式String
dd.MM.yyyy HH:mm z
我正在使用fopen
。但是当我尝试解析给定的String时,我会收到java.text.SimpleDateFormat
。
我正在使用以下代码
ParseException
有人能说出我做错了吗?
答案 0 :(得分:1)
使用小写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)));
2015年4月26日星期日中午12点00分
您可以看到演示here。
您可以查看SimpleDateFormat
here的完整参数说明。
答案 1 :(得分:0)
尝试SimpleDateFormat("dd.MM.yyyy HH:mm")
答案 2 :(得分:0)
Benjy Kessler的回答是可以的(我的upvote)。符号z用于解析时区名称和缩写,符号Z用于解析偏移。
唯一仍缺少的是语言环境。你必须将语言环境设置为英语,因为" CET"是"中欧时间"的英文缩写。在德语中它将是" MEZ"代替。
所以请试试表达式
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm z", Locale.ENGLISH);
顺便说一句,你的输入似乎不一致,因为你的日期是在四月,但是" CET"建议冬季时间(而欧盟欧盟已经转为夏季时间)。我希望你的格式对象足够宽松。