Calendar.getTime()方法中的时间错误

时间:2013-06-02 08:24:52

标签: java

我在从Calender对象中抽出时间时遇到问题 我有一个像下面这样的方法将当前时间返回为String但重新调整的时间不正确

public static String getCreatedDate()
{
    String createdDate = null;
    String DATE_FORMAT_NOW = "yyyy-MM-dd'T'HH:mm:ss.SS"; 
    Calendar cal = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
    createdDate= sdf.format(cal.getTime());        

    System.out.println(createdDate);
    return createdDate;
}

从该方法返回的日期/时间是2013-06-02T 08:18:09.68 ,但正确的时间应为 10:18:09.68 ...该方法将时间返回2小时....

1 个答案:

答案 0 :(得分:3)

您可以在TimeZone上设置SimpleDateFormat

sdf.setTimeZone(TimeZone.getTimeZone("Canada/Pacific"));

要查找可用的TimeZone值,您可以进行如下简单测试:

for(String s : TimeZone.getAvailableIDs())
{
  System.out.println(s);
}

检查您当前的默认TimeZone值:

System.out.println(TimeZone.getDefault());

编辑:我之前的回答(在日历上设置区域设置)未经过测试且无法正常工作(请参阅JB Nizet的评论)。