java - android 日历时区不起作用?

标签 java android

我对 Android 应用程序的时区有疑问。

下面的代码是我的例子:

Calendar c1 = Calendar.getInstance(TimeZone.getTimeZone("America/Miami"));
    c2 = Calendar.getInstance(TimeZone.getDefault());
    c2.set(2012, Calendar.MAY, 1, 9, 0, 0);

    tv2.setText(c1.getTime().toString());
    tv3.setText(c2.getTime().toString());

当我启动应用程序并查看我发现的 textViews 时: enter image description here

为什么它们都是 gmt+2 而第一个不是迈阿密时区?

最佳答案

我可以复制您正在经历的事情。您可以通过执行以下操作获得迈阿密时区的正确时间:

Calendar c1 = new GregorianCalendar(TimeZone.getTimeZone("GMT-4"));
int hour = c1.get(Calendar.HOUR);         
int minutes = c1.get(Calendar.MINUTE);     
int seconds = c1.get(Calendar.SECOND);

tv2.setText(String.format("%d:%d:%d", hour, minutes, seconds));

输出:4:22:41

您可以使用“America/New_York”或“GMT-4”。然而,正如 Chilledrat 提到的最后一个可能与夏令时有关。

关于java - android 日历时区不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10170256/

相关文章:

java - 从 JMeter SampleResult 响应中提取数据

java - 如何读取 <default.package> 中文本文件的内容 [Java]

java - RatingBar 不显示准确的评分

java - 单击项目时在 ListView 中使用 Intent 打开不同的 fragment

android - 保存图像时,图像会旋转 90 度。使用 CameraX

java-me:HttpConnection 无法写入 Instagram API 请求的正文

java - 连接到 Cloud SQL : The Google Cloud SQL API is not enabled for project 上的 postgresql 实例

java - 如何使用参数屏蔽 Java 中除最后 4 个字符以外的所有字符串字符?

android - 如何防止MediaPlayer在其他应用程序中启动

android - 自定义状态栏 - Android