Java 如何禁用添加时区

Java 如何禁用添加时区,java,android,timezone,simpledateformat,Java,Android,Timezone,Simpledateformat,我做下一个操作: 将设备上的时区设置为GMT+0400(非代码) 创建新日期 和打印时间(SimpleDataFormat)-以毫秒为单位 得到 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/Sy

我做下一个操作:

将设备上的时区设置为GMT+0400(非代码)

创建新日期

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

得到 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


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

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

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

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

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

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

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

我认为您的时间格式有问题,而不是时区。使用
K
以am/pm显示小时数,使用
a
显示am/pm标记

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

我想你的问题是时间格式而不是时区。使用
K
以am/pm显示小时数,使用
a
显示am/pm标记

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

有关更多详细信息,请参阅的javadoc中的示例部分:

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss a");
以上内容将提供12小时格式的输出。以下是各种格式的详细列表:


有关更多详细信息,请参阅的javadoc中的示例部分:

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss a");
以上内容将提供12小时格式的输出。以下是各种格式的详细列表:


6:18:38 PM和18:18:38如果我没有弄错的话,两者都是一样的。试着从Aleksandr地铁回答18分钟内的时区不比下午6点多。如果我没有弄错的话,18是用HH格式表示的下午6:18:38和18:18:38都是一样的。试着从Aleksandr地铁回答18分钟内的时区不比下午6点多。18是用HH格式表示的下午6点为什么这是有效的gmt应该是utc-2。。但它实际上显示utc-1!!对我来说有点奇怪@waqaslam@tero17它必须是DST(夏令时)干扰。不要为它烦恼,因为它应该由框架本身来管理。你能解释一下你的响应是如何禁用date java对象中的时区的吗!这取决于如何使用检索到的值。有关更多信息,请实际将gmt作为时区,但不禁用日期对象中的时区。为什么这样做gmt应该是utc-2。。但它实际上显示utc-1!!对我来说有点奇怪@waqaslam@tero17它必须是DST(夏令时)干扰。不要为它烦恼,因为它应该由框架本身来管理。你能解释一下你的响应是如何禁用date java对象中的时区的吗!这取决于如何使用检索到的值。有关更多信息,请实际将gmt作为时区,以便从日期对象禁用时区。