Java日期格式问题

时间:2014-01-17 00:32:05

标签: java date

在我的应用程序中,我允许我的用户输入一些日期,我应该保存在DB中。现在由于我的一些应用程序用户位于全球不同的位置,每个都有自己的日期/时间格式,我想接受它们的任何日期格式,然后将这些格式更改为固定格式,然后我可以保存在DB中。 / p>

但我现在的问题是,当我尝试将用户输入的日期格式更改为我的应用程序格式时出现错误,下面是我目前使用的代码

  1. 实体字段:

    @Temporal(TemporalType.TIMESTAMP) 
    @Column(name="DDATE", nullable=false, unique=false) 
    private Date dDate;
    
  2. 保存在DB中的控制器代码:

    Date rDate, dDate;
    String Date1 = request.getParameter("Date1");       
    String Date2 = request.getParameter("Date2");
    
    //Here the date get display for example as 01/29/2014 (i.e. MM/DD/YYYY)
    System.out.println("Date1::   "+ Date1);
    System.out.println("Date2::   "+ Date2);
    
    SimpleDateFormat parseRDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    SimpleDateFormat parseDDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
        //#########Crashes in the next two lines#########...
        rDate = (Date)parseRDate.parse(Date1);
        dDate = (Date)parseDDate.parse(Date2);
    
    } catch (ParseException e) {
        e.printStackTrace();
    }
    
  3. 那么有人可以建议我如何将用户输入的日期格式化为应用程序静态日期格式吗?

    由于

1 个答案:

答案 0 :(得分:3)

我的建议是使用http://en.wikipedia.org/wiki/ISO_8601作为每个人的通用日期。

如果有人可以输入任何字符串,你永远不会知道08/12/75是12月8日还是8月12日

来自维基百科:

Date and time (current at page generation)
expressed according to ISO 8601:
Date:   2014-01-11
Combined date and time in UTC:  2014-01-11T12:21:05+00:00
2014-01-11T12:21Z
Week:   2014-W02
Date with week number:  2014-W02-6
Ordinal date:   2014-011