0

我在从 Calender 对象获取时间时遇到问题 我有一个类似下面的方法将当前时间作为字符串返回,但重新调整的时间不正确

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 小时 ....

4

1 回答 1

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 的评论)。

于 2013-06-02T08:37:46.800 回答