在java /文件中解析日期

时间:2013-11-19 11:42:51

标签: java unix

我有一个第n列有日期的文件。 如下所示(每列除以',')

1234,3-23,34,kjiio,20131015,AS

虽然我假设日期是'YYYYMMDD'解析这些数据,但我能够获得良好的结果。 但我的问题是日期不是唯一的,它有以下格式,

2013-10-15
10152013
2013-10-15T00:00:00.000

所以我的要求是让该文件中的所有记录都采用单一格式,或者是否存在任何格式为aboce的java api,并以我要求的格式提供。

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您可以通过其位置识别时间戳,并且您知道所有格式,则可以检查适用的格式:

String dateString = "...";
Date date;
if (dateString.contains("-")) {
    if (dateString.contains(":")) {
        // Format 1: YYYY-MM-DDTHH-mm.sss
        date = parseFormatOne(dateString);
    } else {
        // Format 2: YYYY-MM-DD
       date = parseFormatTwo(dateString);
    }
} else {
    // Format 3: DDMMYYYY
    date = parseFormatThree(dateString);
}

然后你可以a)用根据你的定义格式化的那个替换文件中的值,或者b)简单地处理解析的Date

答案 1 :(得分:0)

如果您知道它是哪一列,您可以使用分隔符拆分字符串并从生成的arraylist中获取第n个条目,否则您将不得不使用RegEx来查找它。

至于同质化:如果他们编写的方式数量有限(例如,如果只有3种方式),你可能只想自己解析它们。