Java 将GMT字符串解析为本地
我有一个Java 将GMT字符串解析为本地,java,Java,我有一个date=2011-04-17T22:02:00.001-07:00,我正在使用SDF进行解析 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); formatter.parse(date) 我认为它不支持-07:00,但-0700可以工作。格式中应该更改哪些内容?请查看: 它专门讨论了这个问题。似乎SimpleDateFormat不支持ISO8601时区格式。如果您确定您的
date=2011-04-17T22:02:00.001-07:00
,我正在使用SDF进行解析
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
formatter.parse(date)
我认为它不支持-07:00,但-0700可以工作。格式中应该更改哪些内容?请查看:
它专门讨论了这个问题。似乎
SimpleDateFormat
不支持ISO8601时区格式。如果您确定您的时区将始终以-###:##
(或+##:#
)的格式结束,那么您可以删除最后一个:
,以便现有的格式化程序工作。例如,这将解析您的日期:
String input = "2011-04-17T22:02:00.001-07:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date date = sdf.parse(input.replaceAll(":(..)$", "$1"));
但是,请小心,显然ISO8601允许一些变体,而这些变体不起作用。尝试使用它可能会对您有所帮助。我真的不想只为了简单的解析而使用api。