如果我有:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("Europe/London"));
String dateStr = dateFormat.format(new Date());
System.out.println(dateStr);
输出将是:2014-09-30 14:19:17当我的当地时间是2014-09-30 16:19:17
我需要在特定时区输入日期,而不是字符串类型!
我的问题是,我怎样才能在"欧洲/伦敦" 时区
上获得新日期()答案 0 :(得分:1)
你问:
我的问题是,我怎样才能获得
new Date()
"欧洲/伦敦"时区
你不能。 java.util.Date
类及时代表即时。它未与任何本地时区对齐。
在内部,它跟踪自UTC时间1970年1月1日午夜以来的毫秒数。当您使用时,可能会应用本地时区,但Date
类本身不包含时区设置。
答案 1 :(得分:0)
使用日历,例如:
TimeZone timeZone= TimeZone.getTimeZone("Europe/London"));
Calendar cal = Calendar.getInstance(timeZone);
另外,关于约会的好处是它们不依赖于TimeZone,它是自纪元以来的一段时间(一段时间以后)。你现在使用它的方式实际上是正确的解决方案。