繁体   English   中英

尝试在Android中将yyyy-MM-ddTHH:mm:ss-07:00转换为正确的时间

[英]Trying to convert yyyy-MM-ddTHH:mm:ss-07:00 to correct time in Android

好的,这是我现在在Android中遇到的问题。 在我们的数据库中,有一个时间戳格式为8/15/2013 2:00:48 PM ,通过.NET WebService,我在Android中获得了与此相同的时间: 2013-08-15T14:00:48-07:00 现在,我想将此格式转换为可用于比较的日期时间格式(例如,此Web服务提供设备登录失败的每个实例,因此我们希望检查两次发生之间的时间,以查看是否存在任何问题)。 在下面的代码中,我尝试使用JODA Time,但仍未返回正确的格式:

public static Date convertStringToDate(String input)  {
    String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";
    DateTimeFormatter formatter = DateTimeFormat.forPattern(pattern);
    DateTime dateTime = formatter.parseDateTime(input);
    return dateTime.toDate();
    //printout shows: Thu Aug 15 17:00:48 EDT 2013
}

我知道服务器返回的时间格式很麻烦,很难使用(花了一段时间才能在我们拥有的iOS App中运行,甚至还很笨拙),所以我不介意更改webservice或查询(如果这样做会使事情变得更容易)。

我有一个非常相似的格式,并且我使用SimpleDateFormat对其进行了解析,请尝试以下操作:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZ", Locale.US);
Date dateTime = format .parse(value);

我了解的是您已经有正确的日期实例,而您需要将其解析为String。

我建议您使用:

DateFormat formatter = new SimpleDateFormat("d/MM/yyyy hh:mm:ss a");
//this will give you the format '8/15/2013 2:00:48 PM'

String d = formatter.format(date); 

希望这可以帮助。

编辑:

此外,您还希望在-07:00时区设置日期实例,因此可以更改行

DateTime dateTime = formatter.parseDateTime(input);

对于

DateTime dateTime = formatter.withZone(DateTimeZone.forID("-07:00")).parseDateTime(input);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM