Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以这种格式解析DateTime“;2015年12月22日星期二19:16:57 UTC”;_Java_Datetime_Date Format_Simpledateformat - Fatal编程技术网

Java 如何以这种格式解析DateTime“;2015年12月22日星期二19:16:57 UTC”;

Java 如何以这种格式解析DateTime“;2015年12月22日星期二19:16:57 UTC”;,java,datetime,date-format,simpledateformat,Java,Datetime,Date Format,Simpledateformat,我想用java解析一个格式为“Tue Dec 22 19:16:57 2015 UTC”的日期 这是有效的UTC日期时间吗?如何解析它?我试过: DateFormat format = new SimpleDateFormat("ddd MMM dd HH:mm:ss yyyy UTC"); 有关更多信息,请始终参阅 DateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy Z"); 咨询顾问,我们发现: 工作

我想用java解析一个格式为“Tue Dec 22 19:16:57 2015 UTC”的日期 这是有效的UTC日期时间吗?如何解析它?我试过:

 DateFormat format = new SimpleDateFormat("ddd MMM dd HH:mm:ss yyyy UTC");
有关更多信息,请始终参阅

 DateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy Z");
咨询顾问,我们发现:

  • 工作日名称的格式说明符是
    E
    ,而不是
    d

  • 时区指示器的格式说明符(UTC是一种时区指示器)对于RFC-822时区为
    Z
    (对于ISO-8601时区为
    X
    ,对于“常规”时区为
    Z

所以字符串是
“EEE MMM dd HH:mm:ss yyyy Z”

但是,文档没有说明
UTC
将被识别为时区(使用
Z
X
Z
),因此您可能需要预处理字符串以将
UTC
更改为以下支持的一个说明符:

如果默认情况下您的区域设置不是英语,您还需要告诉
SimpleDateFormat
使用英语(因为它们是英语的日和月名称):


不确定代码是如何编写的,但在军事时间显示代码的一种方法是:

返回字符串。格式(“%02d:%02d:%02d”,小时、分钟、秒)//第一个论点是关键。第二个参数是每个“%02d”中要显示的内容 将显示为00:00:00


希望这有帮助。:-)

它给出了一个例外;**不可辩驳的日期:“2015年12月22日星期二19:16:57 GMT”***艾哈迈托鲁兹:不,它没有——请看实例。@艾哈迈托鲁兹同意TJ,它有效并且
System.out.println(d)打印<代码>Wed Dec 23 06:16:57 EST 2015
为我[link]我按如下方式升级,它可以工作,DateFormat格式=新的简化格式(“EEE-MMM-dd-HH:mm:ss-yyyy-Z”,Locale.ENGLISH);关于(此类问题被问到的次数),你可以拿出答案并检查可用的规范,对其他人的做法进行一些研究,尝试多种方法,如果你真的认为自己找不到答案,那么你可以让用户知道你还尝试了什么(以及“我已经尝试了一切”这不是我们想要听到的,例如,可能会使用您尝试过的格式)
DateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy Z");
String s = "Tue Dec 22 19:16:57 2015 UTC";
s = s.replace("UTC", "GMT");
Date d = format.parse(s);
DateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy Z", Locale.ENGLISH);