我试图这样做 1.获取我的时间当前时间和时区。 2.我知道Google特定国家/地区的时区。 3.计算时区差异。 4.从当前时间中减去这个差异。这会给我在其他国家的时间。 我陷入了第3步和第4步。 我得到这样的当前时间
Date d = new Date();
CharSequence s = DateFormat.format("hh:mm:ss", d.getTime());
和像这样的时区
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"),
Locale.getDefault());
Date currentLocalTime = calendar.getTime();
SimpleDateFormat date = new SimpleDateFormat("Z");
String localTime = date.format(currentLocalTime);
让特定国家/地区的时区由字符串x表示。现在我如何获得localTime - x然后是currentTime - (localTime - x)。
答案 0 :(得分:1)
x是时区ID,有一个列表的链接。只需要将gettimeZone("时区ID")与你想知道时间的城市时区一起提供(我说的是城市因为有很多时间的国家/地区)美国或俄罗斯等地区。)
TimeZone tz = TimeZone.getTimeZone(" x")
http://garygregory.wordpress.com/2013/06/18/what-are-the-java-timezone-ids/
答案 1 :(得分:1)
您可以使用Joda-Time库,
http://www.joda.org/joda-time/
How can i know time in a specific country if i am in a differenet country?
http://www.joda.org/joda-time/apidocs/index.html
您可以根据Joda Time中定义的Canonical ID获取DateTimeZone,
DateTimeZone zone = DateTimeZone.forID("Asia/Kolkata");
Joda Time有一个完整的Canonical ID列表,您可以根据Canonical ID获取TimeZone。
所以,如果你想在这个时刻到纽约当地时间,你会做以下事情
// get current moment in default time zone
DateTime dt = new DateTime();
// translate to New York local time
DateTime dtNewYork = dt.withZone(DateTimeZone.forID("America/New_York"));
这里非常完美地解释了我对你的问题的引用
Get time of different Time zones on selection of time from time picker
您也可以在不使用api的情况下使用此链接
http://tutorials.jenkov.com/java-date-time/java-util-timezone.html
其他参考资料
How to get time with respect to another timezone in android
Date and time conversion to some other Timezone in java
How to convert date time from one time zone to another time zone