如何从特定时区的Java日期字段中获取日历日期?

时间:2015-07-28 12:38:00

标签: java date datetime timezone

我以java.util.Date格式存储日期变量(2015-4-4 15:30:26-0700),(例如yyyy-mm-dd hh:mm:ss timezone)。现在,如果我尝试获取日历日(即04 april 2015),它将转换为我当地的时区并在第二天打印(即05 april 2015)。如何获取特定时区的日历日(例如+1:30 GMT)? 我使用getdate()中的java.util.Date函数来获取日历日。

1 个答案:

答案 0 :(得分:3)

  

我以yyyy-mm-dd hh:mm:ss时区格式将日期存储在日期变量(java.util.Date)中(比如2015-4-4 15:30:26-0700)。< / p>

不,你有一个Date变量。这没有任何特定的格式。忽略toString()告诉您的内容 - 它只是以默认格式在您的本地时区格式化它。这并不意味着格式或时区是Date对象状态的一部分 - 它只代表一个时间点。

这听起来像你想要的:

// Whatever pattern you want - ideally, specify the locale too
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// Whatever time zone you want
format.setTimeZone(...);
String text = format.format(date);

或者,如果您只想要Calendar值:

TimeZone zone = ...; // Whatever time zone you want
Calendar calendar = Calendar.getInstance(zone);
calendar.setTime(date);
// Now use calendar.get(Calendar.YEAR) etc