2012-02-23 83 views
1

我的应用程序读取用户提供的csv文件。此csv文件包含日期和/或时间的字段,以用户选择它的任何方式进行格式化。像: 1999年10月28日 或 2000-01-01,3PM-02-59通过提示用户输入日期格式来解析日期?

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

我会以字符串的形式检索它们的输入,然后执行一些复杂且令人讨厌的操作来从此导出正则表达式字符串,然后将其应用于csv分析器中,以在“日期和时间”字段中标识年,月,日,小时等。

我在开始之前的这个问题:有没有一个库已经做这种事情?我是否重新发明了轮子?我错过了一个更明显的方法吗?

非常感谢!

PS:是的,这是关于用户提供他们自己奇怪的日期和时间格式。没有必要建议使用统一的格式更容易! :-)

回答

1

在约达时间您可以使用多个解析器,你可以检查此SO回答 Using Joda Date & Time API to parse multiple formats

+0

谢谢!这是第一步。我需要根据用户的输入动态创建一个新的解析器?看起来可行... – seinecle 2012-02-23 11:13:19

+0

是的,因为提示用户选择他喜欢的格式,所以可以将它作为输入参数传递给负责日期解析的方法 – Rohi 2012-02-23 12:54:37

0
+0

感谢,但这个是相反的我想要的。 SimpleDateFormat采用格式化的日期并以各种形式进行转换。我需要将所有奇怪格式的日期格式化,并将其转换为单一格式。 – seinecle 2012-02-23 11:10:18

+0

你谈论的奇怪形式,至少用户知道他们是对的?所以你可以问他这种格式,用它创建SimpleDateformat并解析日期,然后使用另一个SimpleDateFormat对象将日期格式化为所需的格式。 – Fredszaq 2012-02-23 11:18:05