如何将日期和时间转换为12小时格式

Ahs*_*lik 2 string datetime android android-datepicker

你好,我有24小时格式的日期和时间字符串,但我想在12小时内如何做到这一点,我的字符串是

String date_st="12 Nov, 2014 23:13"
Run Code Online (Sandbox Code Playgroud)

我这样做

 SimpleDateFormat  dateformat = new SimpleDateFormat("dd' 'MMM,' 'yyyy HH:mm aa");
Run Code Online (Sandbox Code Playgroud)

但它根据我的需要不转换它显示23:13 PM

我希望以下列格式显示

String con_date= "12 Nov, 2014 11:13 PM"
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

Jon*_*eet 6

您需要两种格式:一种用于解析,另一种用于格式化.您需要解析StringDate一个DateFormat,然后将其格式化DateString另一个格式.

目前,你的单身SimpleDateFormat是介于两个之间 - 你有HH24小时,但你也得到aa了上午/下午.你想HHaa输入,并hh aa输出.(这几乎是从来没有适当兼得HHaa.)

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);
Run Code Online (Sandbox Code Playgroud)

请注意,我将区域设置设置为US,因此它始终可以解析"Nov",并将时区解析为UTC,因此您无需担心某些时间被跳过或模糊不清.