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())