2014-01-09 89 views
0

使用的客戶端和Java服務器端的HTML,我試着去文本輸入轉換成Java中的日期對象。 我的第一個輸入應該是格式爲的日期DD/MM/YYYY 和我的第二個應該有時間HH:MM格式化。格式化日期和時間的投入Date對象

什麼樣的嘗試是使用輸入type =「text」爲這兩個,但我無法在服務器端正確形成對象。

你能否給我提供一個簡單的例子來正確地做到這一點? 請忽略任何驗證,當然,你可以假設我的主要問題是解析本身。

+2

這是一個Java的問題?或者你想要JavaScript? –

+0

Ive更新了,服務器端的Java。 – Popokoko

+0

通過'SimpleDateFormat'解析它們 –

回答

2

你可以像這樣

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 
+0

完美的解決方案:) 非常感謝@Elliott Frisch – Popokoko

+0

嗯,有一個輕微的錯誤,我嘗試了DD/MM/YYYY和HH:MM而不是你的模式,同時使用fromString我得到了一些不同的東西,然後什麼預計 – Popokoko

+0

閱讀[格式](http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)再次(它記錄在該鏈接)..「MM」是一年中的月份,「毫米「是一天的分鐘數(並且大寫字母很重要)。 –

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(); 
    } 

解壓縮到一個方法,如果您希望與DateFormat(甚至SimpleDateFormat)做到這一點。