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

标签 android string datetime android-datepicker

你好,我有一个 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"

我该怎么做?

最佳答案

您需要两种格式:一种用于解析,一种用于格式化。您需要使用一个 DateFormatString 解析为 Date,然后将该 Date 格式化为 String 与其他格式。

目前,您的单个 SimpleDateFormat 介于两者之间 - 您有 HH,它是 24 小时制,但您也有 aa 上午/下午。您希望 HH 不带 aa 作为输入,而 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);

请注意,我将区域设置设置为美国,以便它始终可以解析“11 月”,并将时区设置为 UTC,因此您无需担心某些时间被跳过或不明确。

关于android - 如何将日期和时间转换为 12 小时格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26882714/

相关文章:

android - 显示图片时,Google Ads MediaView 无法正确地将高度调整为 wrap_content

java - 在 eclipse 中导入整个 AOSP

c++ - 如何将字符串的大小存储在变量中

python - 检查日期是否属于 pandas 数据框

java - 当我发送推送时 android 应用程序崩溃

Android:翻译动画后按钮不起作用

javascript - 使用 javascript 从数组中存在的字符串中删除双引号

c - 为什么在c中使用scanf()读取限制时无法访问第一个字符串元素

java - 在Google Tasks API中使用Joda-Time库将字符串转换为DateTime格式

Spring MVC-Joda 日期时间错误消息无效日期