格式化日期和时间输入到Date对象

时间:2014-01-09 14:23:07

标签: java html date input

在客户端使用HTML,在服务器端使用JAVA,我试图将两个文本输入转换为java中的 Date 对象。 我的第一个输入应该以格式 DD / MM / YYYY 保存日期 我的第二个应该有时间 HH:MM 格式化。

我尝试使用输入 type =“text”两者,但我无法在服务器端正确形成对象。

您能否为我提供一个简单的例子来做到这一点? 请忽略任何验证,当然您可以认为我的主要问题是解析本身。

2 个答案:

答案 0 :(得分:2)

您可以使用DateFormat(即使是SimpleDateFormat)这样做

private static String DATE_PART = "dd/MM/yyyy";
private static String HOUR_PART = "HH:mm";
private static java.text.DateFormat FORMAT = 
    new java.text.SimpleDateFormat(DATE_PART + " " + HOUR_PART);
private static java.text.DateFormat HOUR_FORMAT = 
    new java.text.SimpleDateFormat(HOUR_PART);
private static java.text.DateFormat DATE_FORMAT = 
    new java.text.SimpleDateFormat(DATE_PART);

public static Date fromStrings(String date, String time) {
    StringBuilder sb = new StringBuilder(date);
    sb.append(" ").append(time);
    try {
        return FORMAT.parse(sb.toString());
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return null;
}
public static void main(String[] args) {
    String date ="09/01/2014";
    String time ="16:05";
    java.util.Date dt = fromStrings(date, time);
    System.out.println(dt);
    System.out.println(DATE_FORMAT.format(dt));
    System.out.println(HOUR_FORMAT.format(dt));
}

哪个输出

Thu Jan 09 09:28:00 EST 2014
09/01/2014
16:05

答案 1 :(得分:1)

String date = "dd/MM/yyyy"; // your date value from user input
String hour = "HH:mm"; // your hour value from user input    

try {
    DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");

    String tempDate = date + " " + hour;
    Date result = dateFormat.parse(tempDate);
    } catch (ParseException e) {
        e.printStackTrace();
    }

如果您愿意,可将其提取到方法中。