我有一个文件,其中第n列有一个日期。
像下面这样说(每列除以',')

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


虽然我假设日期为“ YYYYMMDD”来解析此数据,但我可以获得良好的结果。
但是我的问题是日期不是唯一的,它具有以下格式,

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


因此,我的要求是使该文件中的所有记录都采用单一格式,或者是否有任何Java api取消采用任何格式的日期并给出我要求的格式。

谢谢!

最佳答案

如果可以通过时间戳记的位置标识时间戳,并且知道所有格式,则可以检查采用哪种格式:

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

10-07 21:43