对Java来说还很陌生,但是试图弄清楚如何解决我遇到的问题。我通读了许多有关在Java中格式化未知日期/时间的文章,因为我知道您需要首先了解日期的模式,然后才能开始解析日期。有没有一种方法可以给定字符串日期,例如2/21/2019
,该方法将返回该日期字符串的格式。
我发现ofPattern util,但似乎只返回格式的模式,而不是像上面的字符串。
我正在寻找类似下面的伪代码的东西。如果我能够返回给定字符串的日期模式,则可以使用SimpleDateFormat动态传递模式。
String date = '2/21/2019';
Date datePattern = date.getPattern();
// datePattern would output ""MM/dd/yyyy""
SimpleDateFormat formatter = new SimpleDateFormat(datePattern);
String strDate = formatter.format(date);
再次感谢
答案 0 :(得分:2)
是否可以给定String日期(例如2/21/2019),此方法将返回此日期字符串的格式。
不。 Java无法解释字符串的含义。许多日期字符串格式可能不明确。 1/2/3
是2003年1月的第二天,2003年2月的第一天还是2001年3月2日?
搜索堆栈溢出。您将找到许多有关解析各种日期时间格式的字符串的问答,包括an Answer I wrote today。
DateTimeFormatter
对象。对于任何输入,请依次尝试每个格式化程序,直到一个有效为止(不会抛出DateTimeParseException
)。 真正的解决方案是教育有关ISO 8601的数据发布者。
最后一件事:永远不要使用SimpleDateFormat
。可怕的旧式日期时间类在几年前被现代的 java.time 类所取代。