java - 如何在android中获取相对于另一个时区的时间

标签 java android timezone jodatime

<分区>

我想为 FIFA 2014 世界杯比赛创建一个警报应用程序,其中我有一个服务器存储巴西/阿卡比赛的日期和时间,我的客户端是一个 android 应用程序,android 设备可能有任何可能的时区所以我的问题是我想将巴西/英亩时间转换为具有不同时区的本地 android 设备时间,经过大量谷歌搜索后我开始了解 joda 数据和时间库,但它在 android 中太慢所以请建议任何对我有用的代码。

最佳答案

在我看来Time class最适合你的工作。此外,它是 Android API 而不是一般的 Java API。

这里我提到了一些对你的工作有用的方法:

void switchTimezone(String timezone)

Convert this time object so the time represented remains the same, but is instead located in a different timezone.

static String getCurrentTimezone()

Returns the timezone string that is currently set for the device.

如果您想以独立于时区的方式保存时间,您可以通过 toMillis() 方法转换为毫秒(UTC),然后通过 set(long millis ) 方法。

如果有什么不清楚的请告诉我!

更新

例子:

long timeMillis = /* get time milliseconds form the server */
Time time = new Time();
time.set(timeMillis);

/* changing time zone */
time.switchTimezone(/* your desired timezone in string format */);

/* getting time as string  */
String timeString = time.format("%Y%m%dT%H%M%S"); // you can change format as you wish

Here is a table用于格式化时间

关于java - 如何在android中获取相对于另一个时区的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23968830/

相关文章:

java - 如何在java 1.5中读取.xlsx文件?

java - Java泛型中的 'super'和 'extends'有什么区别

android - Android Studio 3.1.1 未识别 MqttConnectOptions 成员

java - TimeZone.observesDaylightTime() 需要 API 级别 24;是否有可能在旧的 API 版本中获得它?

java - String.format 打印错误的时间

java - 在数组中搜索字符串出现的次数

java - NoSuchElementException : Unable to locate element in popup window

android - 将值(value)从一个 Activity 传递到另一个 Activity 的另一种方法

android - 如何将 textview 放置在 android 的布局边框上?

java - 日期时区在查找位置 "America/Punta_Arenas"的 ID 时遇到问题