我正在添加这个问题,因为我是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
我有以下代码:
DateFormat df = new SimpleDateFormat("M/d/yy h:mm a z");
df.setLenient(false);
System.out.println(df.parse("6/29/2012 5:15 PM IST"));
Run Code Online (Sandbox Code Playgroud)
假设我现在将PC的时区设置为太平洋时间(PDT为UTC-7),则会打印出来
2012年4月29日星期五08:15:00
不是PDT比IST(印度标准时间)落后12.5小时?任何其他时区都不会出现此问题 - 我在日期字符串中尝试使用UTC,PKT,MMT等代替IST.Java中有两个IST是否有机会?
PS:实际代码中的日期字符串来自外部源,因此我不能使用GMT偏移或任何其他时区格式.