Java 是否通过提示用户输入日期格式来分析日期?

Java 是否通过提示用户输入日期格式来分析日期?,java,parsing,date,time,jodatime,Java,Parsing,Date,Time,Jodatime,我的应用程序读取用户提供的csv文件。此csv文件包含日期和/或时间字段,以用户选择的任何方式格式化。比如: 1999/10/28 或 2000-01-01,3PM-02-59 我想为用户提供在该字段中指示日期和时间格式的可能性。所以,我有一个输入窗口,上面写着: “指定日期/时间字段的格式” 例如:对于1999/10/28格式,输入yyyy/mm/dd “其他示例:对于2000-01-01,3PM-02-59,输入yyyy dd mm,hh mm ss” 我将以字符串的形式检索它们的输入,然后

我的应用程序读取用户提供的csv文件。此csv文件包含日期和/或时间字段,以用户选择的任何方式格式化。比如: 1999/10/28 或 2000-01-01,3PM-02-59

我想为用户提供在该字段中指示日期和时间格式的可能性。所以,我有一个输入窗口,上面写着: “指定日期/时间字段的格式” 例如:对于1999/10/28格式,输入yyyy/mm/dd “其他示例:对于2000-01-01,3PM-02-59,输入yyyy dd mm,hh mm ss”

我将以字符串的形式检索它们的输入,然后执行一些复杂而烦人的操作,从这个字符串派生一个正则表达式,然后我将在csv解析器中应用该正则表达式,以在“日期和时间”字段中标识年、月、日、小时等

在开始这篇文章之前,我的问题是:有没有一家图书馆已经在做这种事情了?我是在重新发明轮子吗?有没有比这更明显的方法我没有

非常感谢


PS:是的,这都是关于用户提供他们自己奇怪的日期和时间格式。无需暗示使用统一格式会更容易!:-)

您可能想看看


您可能想看看


在Joda时代,您可以使用多个解析器,您可以检查这个答案

在Joda时代,您可以使用多个解析器,您可以检查这个答案

谢谢,但这与我想要的正好相反。SimpleDataFormat接受格式化日期,并将其转换为各种形式。我需要把一个日期格式化成所有奇怪的格式,并将其转换成单一格式。你所说的奇怪格式,至少用户知道它们是对的?因此,您可以向他索要该格式,用它创建一个SimpleDataFormat并解析日期,然后使用另一个SimpleDataFormat对象将日期格式化为所需格式。谢谢,但这与我想要的正好相反。SimpleDataFormat接受格式化日期,并将其转换为各种形式。我需要把一个日期格式化成所有奇怪的格式,并将其转换成单一格式。你所说的奇怪格式,至少用户知道它们是对的?因此,您可以向他索要该格式,用它创建一个SimpleDataFormat并解析日期,然后使用另一个SimpleDataFormat对象将日期格式化为所需格式。谢谢!这是第一步。我需要根据用户的输入动态创建一个新的解析器?似乎是可行的…是的,因为提示用户选择他喜欢的格式,所以您可以将其作为输入参数传递给负责日期解析的方法!这是第一步。我需要根据用户的输入动态创建一个新的解析器?似乎是可行的…是的,因为提示用户选择他喜欢的格式,所以您可以将其作为输入参数传递给负责日期解析的方法