我以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
函数来获取日历日。
答案 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