gpt4 book ai didi

java - 使用不同的样式和区域设置通过 DateFormat.getDateInstance 解析迄今为止的字符串时出现问题

转载 作者:行者123 更新时间:2023-12-02 04:32:30 26 4
gpt4 key购买 nike

我有一个用例,可以将字符串解析为不同样式(短、中或完整)和区域设置(美国、英国..)的日期。所以我使用 DateFormat.getDateInstance(style,locale) 来解析迄今为止的字符串,同时解析它会抛出“2015/08/14@10:00:00:GMT”的不可解析异常,除了 DateFormat.MEDIUM style.i 想知道如何将相同的字符串解析为 DateFormat.SHORTDateFormat.FULL 样式。

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

public class Testing {

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
DateFormat formatter = DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.US);
Date sd = formatter.parse("2015/08/14@10:00:00:GMT");

}

}

在上面的代码中,如果我将 DateFormat.MEDIUM 修改为 DateFormat.SHORTDateFormat.FULL,它不会解析迄今为止的字符串.

最佳答案

在您的代码中,formatter 的日期模式与您的日期(字符串表示形式)不同

DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.US) 的模式是 MMM d, yyyy 以及代码中正确的转换:

    //pattern = MMM d, yyyy
DateFormat formatter = DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.US);
Date sd_correct = formatter.parse("Aug 14, 2015");

要成功解析日期,需要正确的 DateFormat 实例:

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd'@'HH:mm:ss:z");
Date sd = dateFormat.parse("2015/08/14@10:00:00:GMT");

参见Java string to date conversion了解更多详情。

关于java - 使用不同的样式和区域设置通过 DateFormat.getDateInstance 解析迄今为止的字符串时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31245210/

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