我在json響應中獲取如下所示的日期。在JSON響應中格式化日期
{"dateTime":"2012-03-03T10:00:00.890+05:30"}
我希望在java中顯示它像3月2012年10Am。如何格式化這個日期
我在json響應中獲取如下所示的日期。在JSON響應中格式化日期
{"dateTime":"2012-03-03T10:00:00.890+05:30"}
我希望在java中顯示它像3月2012年10Am。如何格式化這個日期
如果你想這樣做的的Java,使用SimpleDateFormat這樣的:
編輯: ,以配合您的情況我已經如下編輯它:
String input = "2012-03-03T10:00:00.890+05:30";
在在input
以上的字符串,您將不得不從時區部分刪除: colon
,即+05:30
。您可以使用正則表達式來執行此操作,如this post所示。然後使用以下代碼將其轉換爲您的格式:
DateFormat oldFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
DateFormat newFormat = new SimpleDateFormat("dd MMMMM yyyy hha");
String dateStr = newFormat.format(oldFormat.parse(input));
它的工作原理。謝謝回覆:) – techiee 2012-03-05 05:46:51
在JS中,這個日期是標準格式,所以新的日期(object.dateTime)將解析你的日期。然後通過使用toGMTString或toLocalString你將有正確的格式。 你只需要去掉返回的字符串的第一個字符和第四個字符。
answer by Kuldeep Jain是正確的。但是應該避免使用java.util.Date/Calendar類,因爲它們的設計和實現都很糟糕。
改爲使用Joda-Time,或者在Java 8中使用新的java.time。*類(受Joda-Time啓發)。
儘管Joda-Time允許您定義自己的specific formats進行解析,但在您的情況下您不需要。 Joda-Time的DateTime類的構造函數已經被構建來解析您所使用的ISO 8601格式。
示例代碼...
// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so.
// import org.joda.time.*;
// import org.joda.time.format.*;
DateTimeZone timeZone_Kolkata = DateTimeZone.forID("Asia/Kolkata");
String input = "2012-03-03T10:00:00.890+05:30";
DateTime dateTime = new DateTime(input);
DateTime dateTimeInUtc = dateTime.toDateTime(DateTimeZone.UTC);
DateTime dateTimeInKolkata = dateTime.toDateTime(timeZone_Kolkata);
DateTimeFormatter formatter = DateTimeFormat.forStyle("LS").withLocale(new Locale("en", "IN")); // English, India.
String output = formatter.print(dateTime);
轉儲到控制檯...
System.out.println("dateTime: " + dateTime);
System.out.println("dateTimeInUtc: " + dateTimeInUtc);
System.out.println("dateTimeInKolkata: " + dateTimeInKolkata);
System.out.println("output: " + output);
當運行...
dateTime: 2012-03-02T20:30:00.890-08:00
dateTimeInUtc: 2012-03-03T04:30:00.890Z
dateTimeInKolkata: 2012-03-03T10:00:00.890+05:30
output: 2 March, 2012 8:30 PM
取決於所使用解析JSON對象的平臺上。例如,在PHP中,您可以使用date()函數:http://php.net/strtodate – 2012-03-01 11:32:09