如何从日期时间字符串

时间:2016-02-04 06:36:12

标签: java android timezone datetime-format string-parsing

如何从日期时间字符串中获取具有此格式2013-08-15T13:00:00-07:00

的时区

5 个答案:

答案 0 :(得分:1)

你可以从安德烈斯的答案中取出时间偏移量并使用下面的sinppet来获取TimeZone对象。

TimeZone tmzo = TimeZone.getTimeZone("GMT"+offset);
System.out.println(tmzo.getID());

答案 1 :(得分:1)

如果是Java 8,您可以直接使用ISO_ZONED_DATE_TIME格式

进行解析
String input = "2013-08-15T13:00:00-07:00";                             
ZonedDateTime zDateTime = ZonedDateTime.parse(input, DateTimeFormatter.ISO_ZONED_DATE_TIME);            
ZoneId zone = zDateTime.getZone();  

答案 2 :(得分:0)

您可以使用正则表达式。以下假定XML dateTime语法:

String input = "2013-08-15T13:00:00-07:00";
Matcher m = Pattern.compile("(?:[+-]\\d{2}:\\d{2}|Z)$").matcher(input);
if (m.find())
    System.out.println("Time zone: " + m.group());
else
    System.out.println("No time zone found");

答案 3 :(得分:0)

在Java 7中,你可以使用和不使用TZ进行解析,然后计算偏移量,并将当前的TZ偏移量考虑在内。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
Date withTZ = sdf.parse("2013-08-15T13:00:00-07:00");

SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date noTZ = sdf2.parse("2013-08-15T13:00:00-07:00");

答案 4 :(得分:-2)

  

2013-08-15T13:00:00-07:00

最后-7:00 means GMT-7 这是MST(山地标准时间)

该时区正在美国和加拿大使用