mis*_*sco 0 java formatting date
我尝试以YYYY-MM-DD HH:mm:ss格式解析日期
String now = "2012-11-02 12:02:00";
DateFormat formatter;
formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date date_temp = (Date) formatter.parse(now.toString());
System.out.println("output: " + date_temp);
Run Code Online (Sandbox Code Playgroud)
它给了我以下例外
java.text.ParseException: Unparseable date: "2012-11-02 12:02:00"
Run Code Online (Sandbox Code Playgroud)
是的,你已经创建了一种格式化的格式("EEE MMM dd HH:mm:ss z yyyy")然后给它一个完全不同格式的字符串来解析.为什么你认为这会起作用?试试这个:
// Locale specified to avoid any cultural differences. You may also
// want to specify the time zone.
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
Locale.US);
Date date = formatter.parse(now);
Run Code Online (Sandbox Code Playgroud)
需要注意的是解析Date
不会不知道什么格式-调用的结果toString()
(因为你在做隐含在这里)永远只是默认的格式,在JRE默认时区.如果要以特定格式打印出来,请SimpleDateFormat
再次使用.
另请注意,我已将变量的声明和初始化组合在一起.更喜欢在一行中声明变量并稍后给它一个初始值.