我正在开发一个Web应用程序到GWT,我正在使用Object DatePicker。此对象以定义的格式检索日期,我将其转换为字符串,例如:
Wed May 14 2014 00:00
对我来说,将此日期用作某些操作的字符串非常有用。但是,对于其中一个我需要Timestamp对象。出于这个原因,我以下列方式使用SimpleDateFormat对象:
SimpleDateFormat sdf = new SimpleDateFormat("E MMM dd yyyy HH:mm");
Timestamp tDateIni = new Timestamp(sdf.parse(sDateIni).getTime());
然而,当我运行远程调试时,我得到一个ParseException。你知道错误是什么吗?我认为我使用的部分" E MMM"中的SimpleDateFormat对象格式不正确,但我不确定。非常感谢提前!
答案 0 :(得分:1)
如果您想在GWT中解析客户端的日期,请尝试使用DateTimeFormat
DateTimeFormat dateTimeFormat=DateTimeFormat.getFormat("E MMM dd yyyy HH:mm");
Date date=dateTimeFormat.parse("Wed May 14 2014 00:00");
如果要在服务器端解析日期,则将时间(以毫秒为单位)作为长值传递,而不是从客户端传递日期字符串,并使用new Date(timeInMills)
答案 1 :(得分:0)
从
更改此内容SimpleDateFormat sdf = new SimpleDateFormat("E MMM dd yyyy HH:mm");
到
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm");
应该{{1}}代替EEE
代表E
等工作日
在代码下方,完美无缺( TESTED )
Wed
答案 2 :(得分:0)
您的日期格式使用星期几格式,要求" EEE"而不是" E"。当程序尝试读取日期字符串时,这会导致异常。期待一周中的一个字母。
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
答案 3 :(得分:0)
我在SimpleDateFormat对象中添加了Locale对象,现在它可以工作了。感谢您的帮助和意见!!!