解析Java的字符串到日期(Parsing Java String to date)

2019-09-19 07:16发布

日志(2个不同的日期):

START TIME BEFORE PARSE: 06/27/2012 09:00
START TIME AFTER PARSE : Thu Mar 06 09:00:00 EET 2014


START TIME BEFORE PARSE: 07/06/2012 09:00
START TIME AFTER PARSE : Thu Jun 07 09:00:00 EEST 2012

代码:

DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm");
            Date date = sdf.parse(time);
            System.out.println("TIME BEFORE PARSE: " + time);
            System.out.println("TIME AFTER PARSE : " + date);

为什么它搞乱了一年? 如何得到它的工作?

Answer 1:

因为你倒月份与日期:

              dd/MM/yyyy HH:mm
              06/27/2012 09:00

没有在一年内第27个月。



Answer 2:

在第一个例子中的月份是27这是不是在任何日历我所知道的有效。 (你可能刚刚得到了日/月排序错误,或者在你的输入,或在格式您选择。)



Answer 3:

您可以使用模式DD / MM / YYYY解析日期06月27日。 我怀疑是27个月。 适当的格式是MM / DD / YYYY。

该日期格式是默认宽松,因此将考虑27为有效的月份:2年+ 3个月,让你在大游行,2年后结束。



Answer 4:

    String time = "06/27/2012 09:00";
    DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm");
    Date date = sdf.parse(time);
    System.out.println("TIME BEFORE PARSE: " + time);
    System.out.println("TIME AFTER PARSE : " + date);

在您的示例日期格式是错误的。 你必须给 “DD / MM / YYYY HH:MM”,这应该是 “MM / DD / YYYY HH:MM”



Answer 5:

你已经使用的模式DD / MM / YYYY,但是你输入的日期为MM / DD / YYYY,给你造成这种怪异的行为..



文章来源: Parsing Java String to date