Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        4年前关闭。
                                                                                            
                
        
我想解析以下Dateformat


  2015年4月26日17:00 CET


我使用了以下模式String


  dd.MM.yyyy HH:mm z


我正在使用java.text.SimpleDateFormat。但是,当我尝试解析给定的String时,会收到一个ParseException

我正在使用以下代码

String datestring = "26.04.2015 17:00 CET";
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm z");
Date dt = format.parse(datestring)


有人可以告诉我我做错了吗?

最佳答案

Benjy Kessler的回答还可以(我赞成)。符号z用于解析时区名称和缩写,符号Z用于解析偏移量。

唯一仍然缺少的一点是语言环境。您必须将语言环境设置为英语,因为“ CET”是“欧洲中部时间”的英文缩写。在德语中,它将是“ MEZ”。

所以请尝试表达

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm z", Locale.ENGLISH);


顺便说一句,您的输入似乎不一致,因为您的日期是四月,但是“ CET”表示冬季时间(而欧盟EU已经切换到夏季时间)。我希望您的格式对象足够宽大。

09-04 20:59