Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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_Date_Timestamp - Fatal编程技术网

Java 将时间戳转换为字符串而不指定格式

Java 将时间戳转换为字符串而不指定格式,java,date,timestamp,Java,Date,Timestamp,我有一个时间戳字段,可以是任何格式(yyyy-MM-dd或yyyy/MM/dd或yyyy-MM-dd'T'HH:MM:ss等),我无法控制更改它。我想将传入的时间戳转换为字符串,以便根据正则表达式对其进行验证 我可以找到很多解决方案,但都有特定的日期格式。 这可以用一般的方法完成吗?没有标准的方法。但是,您可以使用commons lang库,该库提供: 通过尝试各种不同的解析器来解析表示日期的字符串。 解析将依次尝试每个解析模式。只有在解析整个输入字符串时,才会认为解析成功。如果没有匹配的解析模

我有一个时间戳字段,可以是任何格式(yyyy-MM-dd或yyyy/MM/dd或yyyy-MM-dd'T'HH:MM:ss等),我无法控制更改它。我想将传入的时间戳转换为字符串,以便根据正则表达式对其进行验证

我可以找到很多解决方案,但都有特定的日期格式。
这可以用一般的方法完成吗?

没有标准的方法。但是,您可以使用commons lang库,该库提供:

通过尝试各种不同的解析器来解析表示日期的字符串。
解析将依次尝试每个解析模式。只有在解析整个输入字符串时,才会认为解析成功。如果没有匹配的解析模式,将引发ParseException

这样,您就可以在一次调用中使用多个模式:

Date d = DateUtils.parseDate("2018/06/20", 
           "yyyy-MM-dd", "yyyy/MM/dd", "yyyy-MM-dd'T'HH:mm:ss");
System.out.println(d);
//And that prints Wed Jun 20 00:00:00 SAST 2018, matching on 2nd pattern

“我有一个时间戳字段,它可以是任何格式”,这要么客观上不真实,要么不可思议。你希望如何解析一些没有预定义结构的东西,比如一个随机的数字和字符集合?能够解析可能意味着很多事情。。。日期是03年2月1日,还是03年2月3日,还是03年1月2日,还是1903年2月1日,还是03年2月1日?这看起来不错,但事情是
DateUtils.parseDate(String,String)
。在我的例子中,我公开了一个从客户端获取时间戳的API,我需要验证传入的时间戳是否与yyyy-MM-dd'T'HH:MM:ss此格式匹配。所以我不知道客户端将发送哪种格式(我不能对此施加任何限制)。我有一个正则表达式模式来验证这一点,但它再次需要将发送的时间戳转换为相应的字符串,然后根据正则表达式进行验证。无法找到出路。