簡體   English   中英

Java中的日期格式轉換?

[英]Date Format Conversion in Java?

我有以下格式的JSON供稿中有一個日期:

 mm/dd/yyyy  for example today's date  10/26/2011

我想將其轉換為另一種格式,即將詳細的日期格式設置為:

 Wed, 26 OCT 2011

我怎樣才能做到這一點..??? 我知道這可能很簡單,但是仍然是新手,我們將不勝感激。

這是一個示例,其中我在我的android應用中完全做到了這一點。

public String GetJustTime(String input){
    SimpleDateFormat curFormater = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
    Date dateObj = new Date();
        try {
            dateObj = curFormater.parse(input);
        } catch (ParseException e) {}
        SimpleDateFormat postFormater = new SimpleDateFormat("h:mm a");
        String newDateStr = postFormater.format(dateObj);

    return newDateStr;
}

只需根據需要更改2格式字符串即可。 第一個用於輸入格式,第二個用於輸出格式。

我相信您想要的輸出格式是“ EEE,d MMM YYYY”,但是我現在無法對其進行測試。

這不是很有教育意義,但是這里准備解決您的請求的解決方案:

String dateString = "10/26/2011";
String dateStringParsed = "";
SimpleDateFormat format1 = new SimpleDateFormat("MM/dd/yyyy");
SimpleDateFormat format2 = new SimpleDateFormat("EEE, dd MMM yyyy");

try {
    Date parsed = format1.parse(dateString);
    dateStringParsed = format2.format(parsed);
}
catch(ParseException pe) { 
    //handle the exception
}

AFAIK,無法通過SimpleDateFormat使用月份中的大寫字母。 如果需要,您將不得不手動更改它。

除了使用SimpleDateFormat的解決方案外,僅想添加Joda的DateTimeFormatter( org.joda.time.format.DateTimeFormatter )的替代解決方案,如果您最終做最少的事情,通常認為它是更好的日期/時間API。在代碼中使用日期或時間進行高級設置。 實際上,該解決方案可以全部內聯到一行,但是為了清楚起見,此處顯示了該解決方案:

String source = "10/26/2011";
String target = "Wed, 26 Oct 2011";

DateTimeFormatter sourceFormatter = DateTimeFormat.forPattern("MM/dd/yyyy");
DateTimeFormatter targetFormatter = DateTimeFormat.forPattern("E, dd MMM yyyy");

assertEquals(target, sourceFormatter.parseDateTime(source).toString(targetFormatter));

您可以看一下SimpleDateFormat類。 有關如何使用此功能的一個小示例,取自此處

String dateString = new String("07/12/2005");
java.util.Date dtDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yy");
SimpleDateFormat sdfAct = new SimpleDateFormat("dd/mm/yyyy");
try
{
  dtDate = sdfAct.parse(dateString);
  System.out.println("Date After parsing in required format:"+(sdf.format(dtDate)));
}
catch (ParseException e)
{
  System.out.println("Unable to parse the date string");
  e.printStackTrace();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM