簡體   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