你好,我有一个 24 小时格式的日期和时间字符串,但我想在 12 小时内得到它,我该怎么做我的字符串是
String date_st="12 Nov, 2014 23:13"
我在做这个
SimpleDateFormat dateformat = new SimpleDateFormat("dd' 'MMM,' 'yyyy HH:mm aa");
但它没有根据我的需要转换它显示 23:13 PM
我想以下面的格式显示
String con_date= "12 Nov, 2014 11:13 PM"
我该怎么做?
最佳答案
您需要两种格式:一种用于解析,一种用于格式化。您需要使用一个 DateFormat
从 String
解析为 Date
,然后将该 Date
格式化为 String
与其他格式。
目前,您的单个 SimpleDateFormat
介于两者之间 - 您有 HH
,它是 24 小时制,但您也有 aa
上午/下午。您希望 HH
不带 aa
作为输入,而 hh
带 aa
作为输入输出。 (从不同时拥有 HH
和 aa
几乎是不合适的。)
TimeZone utc = TimeZone.getTimeZone("etc/UTC");
DateFormat inputFormat = new SimpleDateFormat("dd MMM, yyyy HH:mm",
Locale.US);
inputFormat.setTimeZone(utc);
DateFormat outputFormat = new SimpleDateFormat("dd MMM, yyyy hh:mm aa",
Locale.US);
outputFormat.setTimeZone(utc);
Date date = inputFormat.parse(input);
String output = outputFormat.format(date);
请注意,我将区域设置设置为美国,以便它始终可以解析“11 月”,并将时区设置为 UTC,因此您无需担心某些时间被跳过或不明确。
关于android - 如何将日期和时间转换为 12 小时格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26882714/