Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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 如何解析可能具有不同日期格式的字符串输入?_Java - Fatal编程技术网

Java 如何解析可能具有不同日期格式的字符串输入?

Java 如何解析可能具有不同日期格式的字符串输入?,java,Java,例如,我可能有如下输入字符串: 2012-07-23T03:30:00.000Z 或 2012-06-25T13:00:00.000+08:00 对于这两种情况,我需要解析不同的日期格式,例如,如果是2012-07-23T03:30:00.000Z,那么我需要使用yyyy-MM-dd'T'KK:MM:ss'.000Z 如果是2012-06-25T13:00:00.000+08:00,我需要使用yyyy-MM-dd'T'KK:MM:ss'.000+08:00 可以进行日期分析以找出格式吗 但如果我

例如,我可能有如下输入字符串:

2012-07-23T03:30:00.000Z

2012-06-25T13:00:00.000+08:00

对于这两种情况,我需要解析不同的日期格式,例如,如果是2012-07-23T03:30:00.000Z,那么我需要使用yyyy-MM-dd'T'KK:MM:ss'.000Z

如果是2012-06-25T13:00:00.000+08:00,我需要使用yyyy-MM-dd'T'KK:MM:ss'.000+08:00

可以进行日期分析以找出格式吗

但如果我分析日志文件,我可能会看到许多异常被抛出

还是有更优雅的方式来处理这个问题


谢谢

对于每种可能的格式,您可以使用
try
/
catch
块解析不同的时间格式。只有当所有parsings都失败时,才传递异常。

我建议使用commons lang项目中的DateUtils。您可以将一系列格式传递给它,以尝试解析您的日期。如果你问我的话,很干净,java.lang.String…)

例如:

Date d = DateUtils.parse("2012-01-01", "yyyyMMdd", "MM/dd/yyyy", "yyyy-MM-dd");
将成功解析,因为最终模式将起作用