0

我正在从服务中检索地点的小时数数据(事实)。它以 24 小时格式出现在我面前,我需要以 12 小时格式显示它。特定日期的数据如下所示:

"sunday\":[[\"12:00\",\"21:30\"]]

我可以成功地从 JSON 中检索小时数。然后,使用 SimpleDateFormat,我可以将字符串解析为Date对象。但是,我不知道如何将它们转换为 12;-小时格式,以便我可以将它们显示为“12:00 - 9:30”或“12:00pm - 9:30pm”而不是“12: 00 - 21:30”。

我该怎么做呢?谢谢!

编辑:

通过使用 解析小时字符串(即“12:00”)SimpleDateFormat sdf2 = new SimpleDateFormat("hh:mm a");,我收到来自 JSON 的错误,指出该值无法解析。如果我使用 just SimpleDateFormat sdf2 = new SimpleDateFormat("hh:mm");,则没有错误,但我无法以 12 小时格式显示内容。

4

2 回答 2

1

如果您查看简单的日期格式语法文档,您会发现“h”用于 12 小时时间,“a”用于 AM/PM。在将它们放入日期格式化程序之前,您需要使用子字符串提取两次。 http://developer.android.com/reference/java/text/SimpleDateFormat.html

SimpleDateFormat in = new SimpleDateFormat("<input format goes here>");
Date d = in.parse(INPUT_DATE_STRING);
SimpleDateFormat out = new SimpleDateFormat("<output format goes here>");
String outDate = out.format(d);
于 2013-07-28T20:48:13.133 回答
0

试试这个:

//Char sequence for a 12 hour format. 
CharSequence DEFAULT_FORMAT_12_HOUR = "hh:mm a";
//Char sequence for a 24 hour format.
CharSequence DEFAULT_FORMAT_24_HOUR = "kk:mm";

//date is the Date object. Look for more functions in format.
DateFormat.format(DEFAULT_FORMAT_12_HOUR, date);

让我知道它是否有效。如果您有任何问题,请检查您发送的日期。

//This should give you the default time on the device. To show that it works.
DateFormat.format(DEFAULT_FORMAT_12_HOUR, Calendar.getInstance());
于 2013-07-28T20:48:10.257 回答