【问题标题】:Android get current eastern standard timeAndroid获取当前东部标准时间
【发布时间】:2014-04-23 14:31:05
【问题描述】:
我想获取东部标准时间/EST 当前时间,但它一直显示我的当前时间...
知道我做错了什么吗?
DateFormat format = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
TimeZone utc = TimeZone.getTimeZone("America/New_York");
GregorianCalendar gc = new GregorianCalendar(utc);
Date now = gc.getTime();
String strDateString = format.format(now);
【问题讨论】:
标签:
java
android
simpledateformat
android-date
【解决方案1】:
Date 类旨在反映协调世界时 (UTC),因此它不反映您在 GregorianCalendar 中使用的时区。同样默认SimpleDateFormat 使用系统默认时区,如果你想覆盖它,你应该明确地这样做:
DateFormat format = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
TimeZone la = TimeZone.getTimeZone("America/Los_Angeles");
format.setTimeZone(la);
另一种选择是切换到 Joda 时间库:
DateTimeZone la = DateTimeZone.forTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
DateTimeFormat.forPattern(dateTimeFormat).withZone(la).print(System.currentTimeMillis());