快速将长日期解析为月 - 日 - 年字符串的方法

时间:2013-04-17 18:58:06

标签: java gwt

如何将像1366222239935之类的长日期解析为以空格分隔的Month-Day-Year字符串?喜欢"Apr 18 2013"

将它传递到java.util.DateString将给出一个日期字符串,其中包含我在GWT应用程序中渲染所不需要的许多信息。

需要这样做,因为我将结果传递给3个<span>元素;实际上,以空格分隔的日期将被分成几部分:

6 个答案:

答案 0 :(得分:3)

由于gwt不支持SimpleDateFormat

改为使用Gwt DateTimeFormat

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

String datestring =f.format(dateGeneratedbyLong);

并确保DateTimeFormat导入也可以同时使用clientserver

还有另一个具有相同名称但类别不同的​​类是客户端(限制您仅在客户端使用)

答案 1 :(得分:0)

Long数字只是自JavaScript纪元(1970年1月1日午夜,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

答案 2 :(得分:0)

尝试使用SimpleDateFormat检查http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html&gt;

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yy");

String dateAsString = simpleDateFormat.format(new Date());

答案 3 :(得分:0)

您可以将其转换为Date,然后手动构建您的String .-

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

答案 4 :(得分: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();
    }

答案 5 :(得分:0)

    long diff = 1366222239935l;

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