【发布时间】:2017-09-19 10:47:34
【问题描述】:
我想将日期格式化为 "EEE, d MMM YYYY HH:mm:ss z" 中的字符串,但无法接收所需的输出。
我提到了这个tutorial 但是它没有按预期工作,请参见下面的代码:
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Locale;
public class MyClass {
public static void main(String args[]) {
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("EEE, d MMM YYYY HH:mm:ss z");
//tried this as well new SimpleDateFormat("EEE',' d MMM YYYY HH:mm:ss z",Locale.US);
String strDate = date.toString();
System.out.println(strDate);// Tue Sep 19 10:31:40 GMT 2017
// i want this --> Tue, Sep 19 2017 10:31:40 GMT
}
}
请查找jdoodle link 以获取工作示例 感谢您的帮助!
【问题讨论】:
-
为什么你甚至不使用格式化程序就期望得到正确的格式?
-
我意识到我犯的错误,我对 java 还很陌生,感谢您的回复。
-
您应该尝试使用像 Netbeans、Eclipse 或 IntelliJ IDEA 这样的 IDE。他们会告诉您
formatter目前未使用,并且可以更轻松地立即检测到此类问题。 -
Getting Date in HTTP format in Java 的可能重复项。这个问题特别是关于相同的格式。该格式也称为 RFC 1123 或 HTTP 格式。
-
我总是建议抛弃早已过时的类
Date和SimpleDateFormat,而改用现代Java 日期和时间API。在这种情况下,我尤其会这样做,因为现代 API 包含一个内置格式化程序,它可以为您提供您想要的内容:DateTimeFormatter.RFC_1123_DATE_TIME。 this answer 中还有更多内容。