如何将像1366222239935
之类的长日期解析为以空格分隔的Month-Day-Year
字符串?喜欢"Apr 18 2013"
将它传递到java.util.Date
和String
将给出一个日期字符串,其中包含我在GWT应用程序中渲染所不需要的许多信息。
需要这样做,因为我将结果传递给3个<span>
元素;实际上,以空格分隔的日期将被分成几部分:
答案 0 :(得分:3)
由于gwt不支持SimpleDateFormat
改为使用Gwt DateTimeFormat
DateTimeFormat f = DateTimeFormat.getFormat("dd-MMM-yyyy");
String datestring =f.format(dateGeneratedbyLong);
并确保DateTimeFormat
导入也可以同时使用client
和server
。
还有另一个具有相同名称但类别不同的类是客户端(限制您仅在客户端使用)
答案 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”。
答案 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));