2016-05-29 28 views
0

如果我有如下代码:确定哪些DateTimePattern模式使用乔达

DateTimeParser[] parsers = { 
     DateTimeFormat.forPattern("yyyyMM").getParser(), 
     DateTimeFormat.forPattern("yyyyMMdd").getParser(), 
     DateTimeFormat.forPattern("yyyyMMddHHmm").getParser(), 
     DateTimeFormat.forPattern("yyyyMMddHHmmZ").getParser(), 
     DateTimeFormat.forPattern("yyyyMMddHHmmss.SSSSZ").getParser() 
}; 

DateTimeFormatter formatter = new DateTimeFormatterBuilder().append(null, parsers).toFormatter(); 

final DateTime dateTime = formatter 
     .parseDateTime(dateString); 

return new Timestamp(dateTime.getMillis()); 

如何确定使用哪种模式?我只想在没有明确提供时区的情况下强制UTC时区。即当Z缺失时

或者,我怎样才能简单地确定解析乔达日期时间是否提供了一个时区?

回答

1

你随时都可以从下面withOffsetParsed()代码区,并与您的默认区域比较

String dateString = "2016052914346.2354+0300"; 
DateTimeParser[] parsers = {DateTimeFormat.forPattern("yyyyMM").getParser(),DateTimeFormat.forPattern("yyyyMMddHHmmss.SSSSZ").getParser()}; 
DateTimeFormatter formatter = new DateTimeFormatterBuilder().append(null, parsers).toFormatter(); 
DateTime dateTime = formatter.withOffsetParsed().parseDateTime(dateString); 
DateTimeZone zone = dateTime.getZone();//+03.00