如何禁用添加timeZone

时间:2012-11-19 12:35:53

标签: java android timezone simpledateformat

我进行下一步操作:

将设备上的时区设置为GMT + 0400(不是来自代码)

创建新日期

打印时间(SimpleDateFormat) - 以毫秒为单位

GOT 11-19 19:16:40.920:I / System.out(30070):测试时间:1353330825273时间:19.11

当我在设备上更改时区时,GMT + 0600 现在用毫秒创建日期1353330825273

日期myDate =新日期(1353330825273L);

但是当我再次打印时,我得到了 11-19 19:17:00.920:I / System.out(30070):测试时间:1353330825273时间:21.11

时间格式字符串是:k:mm

为什么呢?如何禁用timeZone修改我的时间?

3 个答案:

答案 0 :(得分:5)

它与格式有关,而不是与时区有关,但如果您想要禁用时区,请执行以下操作:

SimpleDateFormat sdf = new SimpleDateFormat(format);
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
return sdf.format(date);

这会将您的时区设置为GMT / UTC

答案 1 :(得分:1)

请参阅SimpleDateFormat的javadoc中的示例部分以获取更多详细信息:

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss a");

以上将为您提供12小时格式的输出。以下是各种格式的详细列表:

enter image description here

答案 2 :(得分:0)

我认为时间格式不是时区问题。使用K显示上午/下午的小时数,a显示上午/下午标记。

SimpleDateFormat sdf = new SimpleDateFormat("KK:mm:ss a");