parse String to Date timestamp java
本问题已经有最佳答案,请猛点这里访问。
我有一个来自Json的String,就像这个
我用Eclipse来构建android应用程序
我怎么解析它到日期? 我不知道什么是"T"和"Z"。
我通常会像这样转换一个日期..但是如何使用"2015-05-07T17:00:00Z"之类的字符串?
或者我必须使用拆分来分割" -","T",":"和"Z"?
1 2 3 | Date today = new Date() SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy") Date todayf = formatter.format(today) |
Z是UTC时间。 T是用于将日期与时间分开的文字。 如果你的字符串总是有一个"Z",那么使用:
1 2 3 4 | SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US); formatter.setTimeZone(TimeZone.getTimeZone("UTC")); Date todayf = formattter.format(today); |
更多这里
如果以下代码适合您,请告诉我:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public static void main(String[] args) { Date date = parseJSONDateTime("2015-05-07T17:00:00Z"); System.out.println(date); } public static Date parseJSONDateTime(String jsonDateString) { if (jsonDateString == null) return null; SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ"); if (jsonDateString.contains("T")) jsonDateString = jsonDateString.replace('T', ' '); if (jsonDateString.contains("Z")) jsonDateString = jsonDateString.replace("Z","+0000"); else jsonDateString = jsonDateString.substring(0, jsonDateString.lastIndexOf(':')) + jsonDateString.substring(jsonDateString.lastIndexOf(':')+1); try { return fmt.parse(jsonDateString); } catch (ParseException e) { e.printStackTrace(); return null; } } |
此代码将删除