簡體   English   中英

Java:如何將帶有月份名稱的字符串轉換為DateTime?

[英]Java: How to convert string with month name to DateTime?

我看到了答案,可以讓我在格式像

"14/02/1952 14:52:22"

通過使用DateTimeFormatter

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime dt = formatter.parseDateTime(string);

我如何將相同的想法應用於這種格式的字符串:

"Sunday, September 29, 2013 7:59:58 AM PDT"

我在嘗試

DateTimeFormatter formatter = DateTimeFormat.forPattern"EEEE, MMMM dd, yyyy h:mm:ss a zzz";
DateTime dt = formatter.parseDateTime(string);

但它對此有所抱怨。

2018年/ Java 10

String value = "Sunday, September 29, 2013 7:59:58 AM PDT";
String format = "EEEE, MMMM dd, yyyy h:mm:ss a zzz";

DateTimeFormatter formatter = new DateTimeFormatterBuilder()
        .parseCaseInsensitive()
        .appendPattern(format)
        .toFormatter(Locale.US);
ZonedDateTime zdt = ZonedDateTime.parse(value, formatter);
System.out.println(zdt);
System.out.println(zdt.format(formatter));

哪些印刷品

2013-09-29T07:59:58-07:00[America/Los_Angeles]
Sunday, September 29, 2013 7:59:58 AM PDT

原始答案

您需要更改期望的格式以滿足SimpleDateFormat指定的要求

String value = "Sunday, September 29, 2013 7:59:58 AM PDT";
String format = "EEEE, MMMM dd, yyyy h:mm:ss a zzz";
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
    Date date = sdf.parse(value);
    System.out.println(date);
    System.out.println(sdf.format(date));
} catch (ParseException ex) {
    ex.printStackTrace();
}

哪個輸出...

Mon Sep 30 00:59:58 EST 2013
Sunday, September 29, 2013 7:59:58 AM PDT

暫無
暫無

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

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