繁体   English   中英

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

[英]how to convert date and time to 12 hour format

你好,我有一个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它是AM / PM。 你想要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);

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

尝试这个答案这是最短和最好的答案堆栈。

    Calendar c = Calendar.getInstance();
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss aa");
     Datetime = sdf.format(c.getTime());
     System.out.println("============="+Datetime);

结果: - ========= 2015-11-20 05:52:25 PM

尝试使用此链接链接在这里

尝试理解SimpleDateFormat符号和含义:

 Symbol       Meaning
   H      hour in day (0-23)
   K      hour in am/pm (0-11)
   h      hour in am/pm (1-12)
   k      hour in day (1-24)

SimpleDateFormat  dateformat = new SimpleDateFormat("dd' 'MMM,' 'yyyy KK:mm aa");

要么

SimpleDateFormat  dateformat = new SimpleDateFormat("dd' 'MMM,' 'yyyy hh:mm aa");

例:

convertDateStringFormat("12 Nov, 2014 23:13","dd MMM, yyyy HH:mm","dd MMM, yyyy hh:mm aa")

public String convertDateStringFormat(String strDate, String fromFormat, String toFormat){
   try{
       SimpleDateFormat sdf = new SimpleDateFormat(fromFormat);
       sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
       SimpleDateFormat dateFormat2 = new SimpleDateFormat(toFormat.trim());
       return dateFormat2.format(sdf.parse(strDate));
   }catch (Exception e) {
       e.printStackTrace();
       return "";
   }
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM