java - 如何根据系统的区域日期时间格式设置将字符串日期转换为日期对象?

标签 java date datetime formatting

在我的项目中,我使用 Date 类的对象, 例如

Date date = Date(dateInStringForm);[Though it is deprecated]

它与IST[印度标准时间]完美配合,但是当我将控制面板[操作系统:Windows7]中的区域和语言中的设置更改为任何其他时例如,葡萄牙,那么它会抛出java.lang.IllegalArgumentException。我们怎样才能使这种转换变得通用?

以下是我的试用示例代码,

导入java.util.Date;

公共(public)类 GenericDateTime {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
   //  Date date = new Date("Jan 20, 2015 3:19:52 PM"); //Indian Standard Time Format
    Date date = new Date("20/Jan/2015 15:19:51"); //Portugese Time Format
    System.out.println("Date Object Form--->>>" + date);
}

}

最佳答案

它与时区无关。您提供的格式与 Date() 允许且可以解析的格式不同。没有通用的方法可以在转换前不知道格式的情况下接受任何类型日期格式。

因此,要接受任何特定格式,您可以使用 SimpleDateFormat

     public static void main(String[] args) {

        SimpleDateFormat dateFormat= new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss");
        dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
        try {
            Date date = dateFormat.parse("20/Jan/2015 15:19:51");
            System.out.println(date);
        } catch (ParseException e) {

            e.printStackTrace();
        }


  }

关于java - 如何根据系统的区域日期时间格式设置将字符串日期转换为日期对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28043982/

相关文章:

javascript - MomentJS 没有正确转换日期

java - 应该如何在 java 类中定义日期属性?

python - 向数据模拟器添加时间戳

python - SQL Where 子句和 Django 时区

java - 标准总和投影

java - 从 ZipInputStream Java 读取时出现 IndexOutOfBoundsException

java - 从 android 发送时 token 显示已过期

python - 将日期指示符变量从日期添加到数据框的有效方法

asp.net - 定期向用户发送电子邮件以更新密码

java - 使用 Bloch 的 Builder 模式是否会影响内存和性能?