2011-09-02 56 views
8

我在24小时时间表上获取当前时间时出现问题。据我所知,“HH”应该代表24小时时间尺度上的当前时间,但由于某种原因,“HH”根本没有被解释。这就是为什么下面这行代码输出如“HH:50:06 Uhr,02. Sep.”在24小时时间表上获取当前时间和日期

DateFormat.format("HH:mm:ss 'Uhr', dd. MMM", new Date()); 

任何想法我做错了什么?然而,使用“hh”作品,它会以12小时制输出时间,这不是我想要做的。

帮助赞赏!

+0

入住这里:http://developer.android.com/reference/android/text/format/DateFormat.html#HOUR_OF_DAY我希望它会帮助你! –

回答

18

您可以使用SimpleDateFormat对其进行格式化你喜欢的方式,这个工程:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); 
String str = sdf.format(new Date()); 

而且Android version of docs

+0

谢谢,像魅力一样工作。 – Tim

1

尝试这种情况:

 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); 
     String s = sdf.format(new Date()); 
7

HH是白天在24小时制的小时的格式说明(0-23;为0的偏移量)仅当利用SimpleDateFormat类用于格式化日期。

您正在使用format method of the android.text.format.DateFormat class类,它不使用此表示法;而是使用符号k/kk以24小时格式显示小时。 因此,您的日期格式字符串必须以下列方式指定:

DateFormat.format("kk:mm:ss 'Uhr', dd. MMM", new Date()); 
+0

感谢您对此进行阐述。 – Tim

+0

这是不幸的,因为http://developer.android.com/reference/android/text/format/DateFormat.html中的Javadoc声明“有关格式字符串的规范文档,请参阅SimpleDateFormat。” –

+0

@ RobertTupelo-Schneck,是的,只有在您使用类的工厂方法时,规范文档才适用,而在您提供自己的格式字符串时不适用于其他类。 –