我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.
对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:
>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud) datetime android android-gradle-plugin threetenbp threetenabp
如何在Android应用程序中获取当前时区?我试着用这个
Calendar cal = Calendar.getInstance( userConfig.locale);
TimeZone tz = cal.getTimeZone();
Run Code Online (Sandbox Code Playgroud)
但我没有从中得到时区.如何显示时区?
Android设备从哪里获取默认时区?
示例 - 您启动一个全新的Android设备,并且安装向导带有"日期和时间"活动,其中已选择默认时区(在我的情况下为http://en.wikipedia.org/wiki/Central_European_Time) - 它来了从?
如何获得时区缩写,如IST(印度标准时间),ET(东部时间)等.
我使用下面的代码来获取android中的时区信息,
选项1:
String mobileTimeZone = Calendar.getInstance().getTimeZone()
.getDisplayName(false, TimeZone.SHORT);
Run Code Online (Sandbox Code Playgroud)
我选择了不同的时区和输出如下,
GMT + 13:00
GMT + 00:00
但是当设置某些时区时,它会给我正确的缩写代码作为输出,如下所示,
美东时间
我还尝试了下面的代码,它给出了时区的完整描述.
选项2:
String mobileTimeZone = Calendar.getInstance().getTimeZone().getID();
Run Code Online (Sandbox Code Playgroud)
获得以下输出,这只是区域名称:
太平洋/中途岛
太平洋/火奴鲁鲁
美洲/蒙得维的亚
是否有任何id或表的列表,包含所有时区供我映射.
而且还需要考虑白天节省的费用.
帮我从android手机上获取Time Zone的缩写.
我有一个格式为服务器的日期yyyy-mm-dd HH:mm:ss。我有当前时间(以毫秒为单位)System.currentTimeMillis()。我想比较两个日期,看看从服务器收到的日期是否是未来日期,以及是否为未来日期安排警报。所以我的问题是如何比较这 2 个不同格式的日期以及如何获得剩余时间(未来-当前)以便安排闹钟。
编辑:我已经尝试以毫秒为单位解析日期,但它不会返回与 System.currentTimeMillis(). 所以它失败了
android ×5
datetime ×2
timezone ×2
abbreviation ×1
date ×1
java ×1
threetenabp ×1
threetenbp ×1