如何使用包含日期和时间的字符串设置DateField值?

问题描述

| 我有以下字符串\“ 29/05/2012 12:11 PM \” 我想将此值添加到DateField 我这样做是这样的:
String dateTime = \"29/05/2012 12:11 PM\";
long initialDateTime = System.currentTimeMillis();
SimpleDateFormat SDF_DateTime = new SimpleDateFormat(\"dd/MM/yyyy hh:mm aa\");
DateField DF_DateTime = new DateField(\"Time: \",initialDateTime,SDF_DateTime,Field.FIELD_LEFT | DrawStyle.LEFT | Field.FOCUSABLE);
DF_DateTime.setTimeZone(TimeZone.getDefault());
DF_DateTime.setDate(stringToDate(dateTime));
add(DF_DateTime);
哪里
public Date stringToDate(String s) 
{
    Calendar c = Calendar.getInstance(TimeZone.getDefault());
    c.set(Calendar.DAY_OF_MONTH,Integer.parseInt(s.substring(0,2)));
    c.set(Calendar.MONTH,Integer.parseInt(s.substring(3,5)) - 1);
    c.set(Calendar.YEAR,Integer.parseInt(s.substring(6,10)));
    c.set(Calendar.HOUR,Integer.parseInt(s.substring(11,13)));
    c.set(Calendar.MINUTE,Integer.parseInt(s.substring(14,16)));
    c.set(Calendar.SECOND,0);
    c.set(Calendar.AM_PM,s.substring(17,19).toLowerCase().equals(\"am\") ? Calendar.AM : Calendar.PM);
    return c.getTime();
}
但是该字段显示:\“ 2012/05/30 12:11 \” 而不是“ 2012年5月29日下午12:11” 如果有必要知道,我的设备会在以下时区中设置选项:\“伦敦都柏林(GMT)\” 对正在发生的事情有逻辑上的解释吗?     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)