如何将默认时区设置为与系统不同的时区并存储日期

时间:2016-06-14 19:43:45

标签: java datetime timezone

我在美国中部时间,试图在美国东部时间存储日期,但它给我一个错误的输出:

String reportedDate =" 06-14-2016 02:10:59 PM&#34 ;;

以下是我的输出:

TimeZone:东部标准时间
区:美国/纽约
日期:06-14-2016 03:10:59 PM

我使用下面的代码:

SimpleDateFormat sdfInCentral = new SimpleDateFormat("MM-dd-yyyy hh:mm:ss a");   
String reportedDate = "06-14-2016 02:10:59 PM";    
Date birthDate = sdfInCentral.parse(reportedDate);   
TimeZone.setDefault(TimeZone.getTimeZone(ZoneId.of("America/New_York")));   
TimeZone tz = TimeZone.getDefault();   
sdfInCentral.setTimeZone(tz);     

1 个答案:

答案 0 :(得分:0)

从提到的信息中你可以尝试这样的事情

    SimpleDateFormat sdfInCentral= new SimpleDateFormat("MM-dd-yyyy hh:mm:ss a");
    sdfInCentral.setTimeZone(TimeZone.getTimeZone("EST"));
    String reportedDate = "06-14-2016 02:10:59 PM";    
    Date date = sdfInCentral.parse(reportedDate);
    System.out.println(date);