2011-08-29 75 views
27

我有一个SimpleDateFormat来解析StringDateSimpleDateFormat的24小时

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ"); 

当我解析的:

format.parse("2011-08-29T12:44:00+0200"); 

其结果将是,使用Date.toLocaleString时:

8月29日2011 0时44分00秒

这应该是ofcourse:

8月29日2011 12时44分00秒

当我解析的:

format.parse("2011-08-29T13:44:00+0200"); 

则如预期的结果:

8月29日2011 13时44分00秒

我该如何解决这个问题?

回答

92

Use HH instead of hh for the hours pattern

H Hour in day (0-23) Number 0 
k Hour in day (1-24) Number 24 
K Hour in am/pm (0-11) Number 0 
h Hour in am/pm (1-12) Number 12 
+0

啊,谢谢。当你花了半个小时寻找一个解决方案,这是真正的乐趣。 (: – nhaarman

+1

它在Javadoc中的SimpleDateFormat ;-) – C0deAttack