java-将日期字符串转换为UTC时间

java-将日期字符串转换为UTC时间,java,date,utc,Java,Date,Utc,我只需要一个示例代码块或建议来将下面的日期字符串转换为utc时间,并在java中查找与当前时间的差异 日期字符串“2016-03-21T15:58:36-04:00” 提前感谢您需要按以下方式格式化日期字符串: String string = "2016-03-21T15:58:36-04:00"; DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.ENGLISH); Date date

我只需要一个示例代码块或建议来将下面的日期字符串转换为utc时间,并在java中查找与当前时间的差异

日期字符串“2016-03-21T15:58:36-04:00”


提前感谢

您需要按以下方式格式化日期字符串:

String string = "2016-03-21T15:58:36-04:00";
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.ENGLISH);
Date date = format.parse(string);
然后,您只需要使用日期API来查找时间差。

关于Java中解析日期/时间字符串的堆栈溢出问题有很多。你是怎么看的?请记住,
SimpleDateFormat.parse
将返回一个没有时区的
Date
,它只是一个瞬间。如果格式字符串正确,并且数据包含UTC偏移量(正如这里所做的),那么就不会进行进一步的转换。
public static long getMillisFrom(String inStrDate) {

   DateFormat ISO_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ENGLISH);

   Date inDate = ISO_DATE_FORMAT.parse(inStrDate);

   Date curDate = new Date();

   long diffMillis = curDate().getTime() - inDate.getTime();
   return diffMillis

}