SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss");
try {
String timeString=new String("19860821130102");
Log.v(TAG, "timeString=" + timeString);
java.util.Date date = DATE_TIME_FORMAT.parse(timeString);
Log.v(TAG, date.toString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我使用上面的Snippet来解析一个字符串到目前为止。 logcat结果是
TIMESTRING = 19860821130102
Thu Aug 21 14:01:02 GMT + 08:00 1986
我认为小时字段应该是13而不是14。 这让我感到困惑。 有什么帮助吗?
答案 0 :(得分:0)
使用此解决方案
String dateString = "03/26/2012 11:49:00 AM";
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa");
Date convertedDate = new Date();
try {
convertedDate = dateFormat.parse(dateString);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(convertedDate);
答案 1 :(得分:0)
在第一行之后插入
DATE_TIME_FORMAT.setTimeZone(TimeZone.getTimeZone("GMT+0800"));
您可能需要根据需要对其进行修改。
答案 2 :(得分:0)
因为hh
小时内从 1到12 抓取小时数,您可以看到编码Format。
试试如下:
DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
String datenow="19860821130102";
Date date2 = (Date) formatter.parse(datenow);
答案 3 :(得分:0)
你可以试试这个
SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss");
SimpleDateFormat Parsed_DATE_TIME_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss");
try {
String timeString=new String("19860821130102");
Log.v(TAG, "timeString=" + timeString);
TimeZone destTimeZone = TimeZone.getDefault();
Log.v=(TAG, "Source TimeZone: " + destTimeZone);
DATE_TIME_FORMAT.setTimeZone(destTimeZone);
String convertedDateString = DATE_TIME_FORMAT.format(DATE_TIME_FORMAT.parse(timeString));
Log.v(TAG, "ConvertedDateString: " + convertedDateString);
java.util.Date date = Parsed_DATE_TIME_FORMAT.parse(convertedDateString, new ParsePosition(0));
Log.v(TAG, "ConvertedTime: " + date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}