2013-04-17 74 views
1

如何解析長日期如:1366222239935成一個空格分隔的字符串Month-Day-Year?等進入"Apr 18 2013"快速解析長日期爲月 - 日 - 年字符串

傳遞一個java.util.Date和一個String會給日期的字符串,它包含了許多信息,我不需要在我的GWT應用程序的渲染。

需要這樣做,因爲我會將結果傳遞給3 <span>元素;所以實際上的空間分隔的日期將被分割爲部分:

  • 年份
+0

那是一個長數以毫秒爲單位? – NINCOMPOOP

回答

3

如GWT將不支持SimpleDateFormat

轉而使用GWT DateTimeFormat

DateTimeFormat f = DateTimeFormat.getFormat("dd-MMM-yyyy"); 

String datestring =f.format(dateGeneratedbyLong); 

,並確保DateTimeFormat進口還您可以使用雙方clientserver方。

在有相同的名稱,但包裝的另一個類不同,它的客戶端(限制您在客戶端只使用)

+0

不客氣。 :) –

0

Long數目僅僅是由於JavaScript的歷元的毫秒數(1/1/1970午夜,UTC時間)。因此,而不是解析它,使用構造爲Date對象:

var myDate = new Date(1366222239935); 
    alert(myDate); 

,將顯示「星期三2013年4月17日11點10分39秒GMT-0700(太平洋夏令時間)」。我在PST中,但它會默認使用您的區域設置中的任何時區。

內部Java中的GWT應用程序,只需做:

 Date date=new Date(1366222239935); 

然後你可以使用SimpleDateFormat渲染爲 「DD/MM/YY」。

http://www.w3schools.com/jsref/jsref_obj_date.asp

+0

你是正確的迭戈,但不幸的是gwt不支持simpledateformat。 –

0

你可以將其轉換爲Date,然後手動構建String像this.-

Date date = new Date(timeInMils); 
String res = date.get(Calendar.MONTH) + " " + 
      date.get(Calendar.DAY_OF_MONTH) + " " + 
      date.get(Calendar.YEAR); 
0

做這樣

Date d = new Date(); 

    d.setTime(1366222239935l); 

    System.out.println(d); 

    SimpleDateFormat sdf = new SimpleDateFormat("MMMM dd yyyy"); 

    try { 
     System.out.println(sdf.format((d))); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

這是否正確打印? – NINCOMPOOP

+0

不幸的是gwt不支持simpledateformat。 –

+0

是的,這裏是輸出星期三4月17日14:10:39 EDT 2013 2013年4月17日 – NullPointerException

0
long diff = 1366222239935l; 

    Date date = new Date(diff); 
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy"); 
    System.out.println(sdf.format(date)); 
+0

真的,但不幸的是gwt不支持simpledateformat。 –

相關問題