gpt4 book ai didi

java - 使用不同的格式/模式解析迄今为止的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 07:21:22 25 4
gpt4 key购买 nike

我需要将字符串解析为日期,但事先不知道该字符串将采用哪种模式。这类似于问题 How to convert String to Date without knowing the format? .

为了解决这个问题,我采用了几种模式来测试结果。然而,我得到的有点奇怪。

示例1:

    import java.util.Date;
import org.apache.commons.lang3.time.DateUtils;

public Date extractDate(String dateStr) {

String [] datePatterns = {"yyyy-MM-dd", "dd-MM-yyyy"};
Date date = null;

try {
date = DateUtils.parseDate(dateStr, datePatterns);
}
catch (Exception except) {
except.printStackTrace();
}
return date;
}



public static void main(String[] args) throws Exception {
System.out.println ("2013-09-30:" + extractDate("2013-09-30") );
System.out.println ("30-09-2013:" + extractDate("30-09-2013") );

}

这给出:

    2013-10-30:Wed Oct 30 00:00:00 EAT 2013
30-09-2013:Mon Mar 05 00:00:00 EAT 36

解析“30-09-2013”​​的结果显然很奇怪。

示例2:这里我只切换模式

        String [] datePatterns = {"dd-MM-yyyy", "yyyy-MM-dd"};

这给出:

    2013-10-30:Mon Mar 05 00:00:00 EAT 36
30-09-2013:Mon Sep 30 00:00:00 EAT 2013

在示例 2 中,解析“2013-10-30”的结果很奇怪。

如何使用不同的格式/模式解析日期字符串以使结果日期正确?

最佳答案

更新为使用parseDateStrictly。当我这样做时,我得到以下输出:

2013-09-30:Mon Sep 30 00:00:00 EDT 2013
30-09-2013:Mon Sep 30 00:00:00 EDT 2013

关于java - 使用不同的格式/模式解析迄今为止的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19269888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com