Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Calendar.getTime()方法中的时间错误_Java - Fatal编程技术网

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

Java Calendar.getTime()方法中的时间错误,java,Java,我无法从日历对象获取时间 我有一个类似下面的方法,将当前时间作为字符串返回,但返回的时间不正确 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

我无法从日历对象获取时间 我有一个类似下面的方法,将当前时间作为字符串返回,但返回的时间不正确

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-02T08:18:09.68,但正确的时间应为10:18:09.68。。。该方法返回向后移动2小时的时间

您可以在
SimpleDataFormat
上设置
时区:

sdf.setTimeZone(TimeZone.getTimeZone("Canada/Pacific"));
要查找可用的
时区
值,您可以进行如下简单测试:

for(String s : TimeZone.getAvailableIDs())
{
  System.out.println(s);
}
要检查当前默认的
时区
值:

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

编辑:我以前的答案(在日历上设置区域设置)未经测试且不起作用(请参阅JB Nizet的评论)。

您可以在
SimpleDateFormat
上设置
时区:

sdf.setTimeZone(TimeZone.getTimeZone("Canada/Pacific"));
要查找可用的
时区
值,您可以进行如下简单测试:

for(String s : TimeZone.getAvailableIDs())
{
  System.out.println(s);
}
要检查当前默认的
时区
值:

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

编辑:我以前的答案(在日历上设置区域设置)未经测试且不起作用(请参阅JB Nizet的评论)。

您是否查看了系统时间?在BIOS中。听起来好像时区设置不正确。我猜您现在所在的位置的时区为GMT+2,正如@Thilo所说。谢谢……对。。。我在一个有GMT+2。。。但是我认为日历应该返回我的本地时间,因为我不想设置时区。时区可能是错误的,伙计,下面解释道。你看了你的系统时间了吗?在BIOS中。听起来好像时区设置不正确。我猜您现在所在的位置的时区为GMT+2,正如@Thilo所说。谢谢……对。。。我在一个有GMT+2。。。但是我认为日历应该返回我的本地时间,因为我不想设置时区。时区可能是错误的。下面的老兄解释道。它将如何更改当前时间,或者日期格式格式化当前时间的方式?日历在这个问题上无关紧要。OP也可以使用
sdf.format(new Date())
它将如何更改当前时间,或者DateFormat格式化当前时间的方式?日历在这个问题上无关紧要。OP也可以使用
sdf.format(newdate())