我使用DateTimePicker选择日期和时间,当我按下ok按钮时,使用getDateTime()获取日期时间,并将其分配给Calender对象(selectedDate)。我想以格式显示时间(星期五,4月27日,06:00:00 )。
所以我用下面的代码来格式化。
selectedDate = datePicker.getDateTime();
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd hh:mm:ss aa");
timeField.setText(sdf.formatLocal(selectedDate.get(Calendar.MILLISECOND)));不知道是解析错误还是DateTimePicker返回错误的时间,但是显示的文本为任何日期时间选择是
清华一月一日05:00:00
由于我必须针对大多数设备,我的应用程序针对OS5和测试模拟器9550。
发布于 2013-04-27 21:22:01
问题是您正在检索--只是当前日期的MILLISECOND字段的值,而不是整个日期。你可能想要毫秒精度,但这段代码
selectedDate.get(Calendar.MILLISECOND)就是简单的从当前日期/时间提取毫秒字段。这只是上一秒钟以来的毫秒数。类似于
selectedDate.get(Calendar.MONTH);今天只会返回4(或者可能返回3,我不记得它是否基于0)。
你应该用
timeField.setText(sdf.formatLocal(selectedDate.getTime().getTime()));发布于 2013-04-27 14:38:06
很难理解您的问题,因为您没有告诉我们发生了什么您不期望和/或收到的任何错误消息;而且,我在任何地方都找不到formatLocal()作为一个方法。
我确实注意到,您似乎正在传递日期的一部分,即毫秒。如果要将日期表示为毫秒,则该方法为Date.getTime()。
https://stackoverflow.com/questions/16252979
复制相似问题