我正在添加这个问题,因为我是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
我需要一些关于这个java方法的建议。此方法的目的是获取一个表示日期的字符串(该字符串是根据 EST 时区中的日期创建的)并将其转换为 UTC 时区中的 java Date 对象。
private Date buildValidationDate(String dateString) throws ParseException {
System.out.println("dateString " + dateString);
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyy hh:mm a");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
dateFormat.setLenient(true);
Date dt = dateFormat.parse(dateString);
System.out.println("dt " + dt);
return dt;
}
Run Code Online (Sandbox Code Playgroud)
我看到的问题是 dt 的值似乎已关闭。例如,如果 dateString 是 '10/16/2012 12:06 PM' - 我期望 dt 的值(以 UTC 表示)类似于 'Tuesday, October 16, 2012 4:06 PM'。相反,dt 的值是“Tue Oct 16 07:06:00 CDT 2012”。这似乎不是正确的 UTC 时间。
我很感激任何建议,如果这似乎是一个简单的问题,我很抱歉我在 Java 日期方面遇到了很多麻烦。我不确定我的编码是否错误,或者我的方法是否有问题。谢谢