Calendar.getTime() 失败,并显示 java.lang.IllegalArgumentException:MINUTE(对于亚洲/新加坡时区)

2024-03-24

为什么这段代码会失败?目的是删除时间部分。

String dateStr = "1982-01-01";
String timeZoneID = "Asia/Singapore";

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = dateFormat.parse(dateStr);      

Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(TimeZone.getTimeZone(timeZoneID));
calendar.setLenient(false);
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);

System.out.println(calendar.getTime());

错误信息:

Exception in thread "main" java.lang.IllegalArgumentException: MINUTE
    at java.util.GregorianCalendar.computeTime(GregorianCalendar.java:2482)
    at java.util.Calendar.updateTime(Calendar.java:2265)
    at java.util.Calendar.getTimeInMillis(Calendar.java:1049)
    at java.util.Calendar.getTime(Calendar.java:1022)
    at Prog.main(Prog.java:31)

它适用于以下输入:

  • dateStr =“1982-01-01”,timeZoneID =“欧洲/柏林”
  • dateStr = "1981-01-01", timeZoneID = "亚洲/新加坡"
  • dateStr = "1982-01-01", timeZoneID = "亚洲/首尔"

您的代码从日期 1/1/1982 开始,并将 HOUR_OF_DAY 和 MINUTE 设置为 0。

但 1982 年 1 月 1 日,新加坡并没有凌晨 12:00:00。 1981 年 12 月 31 日晚上 11:59:59 之后,新加坡领先了半个小时,到达凌晨 12:30。此前为 UTC+7:30,但移至 UTC+8 整点区域。

资料来源:新加坡标准时间 https://en.wikipedia.org/wiki/Singapore_Standard_Time and 。也可以看看为什么新加坡位于“错误”的时区? http://www.math.nus.edu.sg/aslaksen/teaching/timezone.html新加坡的简史。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Calendar.getTime() 失败,并显示 java.lang.IllegalArgumentException:MINUTE(对于亚洲/新加坡时区) 的相关文章

随机推荐

  • 如何在 Chef LWRP 定义中实现动态属性默认值

    我希望能够用 3 个参数来定义一个轻量级资源 其中两个是基本 基本参数 第三个是这两个参数的组合 我还想提供自定义第三个参数的可能性 例如 如何修改以下代码以实现上述行为full name属性 资源定义 actions install at
  • 从代码设置 silverlight 模板?

    如果我的模板放置在 ResourceDictionary 中 如何从代码中设置 control Template 从根本上讲 您需要附加到控件加载事件 此时您可以分配给 Template 属性 您可以从资源字典中检索模板 例如 假设您有一个
  • 捕获 python cgi 脚本后面的 url 路径?

    如果我举个例子来解释我的问题会更好 cgi 脚本的文件名 awesome URL http omgpython com awesome http omgpython com awesome awesome 脚本正常运行 我附加了一个 假 路
  • ios页面卷曲显示视图控制器

    嗨 我想让地图视图看起来像那样 我想让右下角像这样 当我单击它时 它会启动一个模态视图控制器 这个怎么做 请参阅这个问题 当然答案 iOS 上的卷页 https stackoverflow com questions 5435547 pag
  • 如何排除工作 git 存储库中的文件夹 (Visual Studio Code)

    我使用的是 Visual Studio Code 版本 0 7 10 我想使用版本控制 我认为现在是开始自学使用 git 的好时机 我以前从未使用过它 如何让 git 忽略我的 node modules 文件夹 此文件夹中的每个项目都列出了
  • Android中如何判断SD卡是否挂载?

    我正在开发一个 Android 应用程序 需要查看用户存储了哪些图像 问题是 如果用户通过 USB 电缆安装了 SD 卡 我无法读取磁盘上的图像列表 有谁知道有什么方法可以判断 USB 是否已安装 以便我可以弹出一条消息 通知用户它无法工作
  • GLSL 纹理立方体和纹理2D 在同一着色器中

    我似乎无法两者兼得texture2D and textureCube 在一个着色器中 当我这样做时 什么也没有显示 也没有错误 我用我自己的着色器加载器和 Apple GLSL 着色器生成器尝试了这一点 并且发生了同样的事情 即使我有也会发
  • #./ 和 #. 之间的区别./

    执行脚本有什么区别 test and test 例如 测试是简单的脚本 bin bash export OWNER NAME ANGEL 12 export ALIAS angelique 我知道结果 但不确定实际发生了什么 Thanks
  • 向我指出一些*带有*(单元)测试的开源项目[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 作为参考 我正在寻找一些带有单元测试的开源项目 Edit Surely there must更多 SQLite 有一个非常全面的测试套件
  • 在什么情况下Java性能会随着内存的增加而降低?

    我们正在 DEV 环境中对 Java 1 6 应用程序进行负载测试 JVM 堆分配为 2Gb Xms2048m Xmx2048m 在负载测试下 应用程序运行流畅 从未使用超过 1 25Gb 的堆 并且垃圾收集完全正常 在我们的UAT环境中
  • 为 python 2.7 而不是 3.4 安装 numpy

    我一直在努力为 python 2 7 而不是 3 4 安装 numpy 这两个版本都在我的 ubuntu 上 我努力了 sudo pip2 安装 numpy 但它说 Requirement already satisfied use upg
  • 自动同义词检测方法

    我目前正在研究一种基于神经网络的短文档分类方法 由于我正在使用的语料库通常在十个单词左右 因此标准统计文档分类方法的用途有限 因此 我正在尝试对训练中提供的匹配实施某种形式的自动同义词检测 更具体地说 我的问题是关于解决以下情况 假设我有
  • MVC4 自定义不显眼的验证器不起作用

    不知道出了什么问题 语法似乎是正确的 但它仍然不会在客户端触发 如果我提交表单 我会得到服务器端验证 客户端什么也没有 这是页面上的代码 Scripts jquery validate min js gt Scripts jquery va
  • 如何在matlab中将向量添加到矩阵?

    如何将向量添加到 Matlab 中的矩阵中 以将向量的 i 索引添加到 i 行中的所有成员的方式 例如 A 1 2 3 4 5 6 6 7 8 v 1 2 3 所需的结果是 2 3 4 6 7 8 9 10 11 多谢 您可以使用bsxfu
  • 求大数阶乘​​的快速方法

    这是我的程序 但是对于像 100 000 这样的大数字 它的运行速度非常慢 有什么选项可以优化吗 import java math BigInteger import java util Scanner public class Main
  • python分块三对角矩阵

    我想从三个 numpy ndarray 开始创建一个块三对角矩阵 有没有任何 直接 方法可以在 python 中做到这一点 先感谢您 Cheers 对于 常规 numpy 数组 使用numpy diag http docs scipy or
  • 如何在 for_each 中组合函数和谓词?

    你怎么能打电话给Function over some容器的一部分 使用for each 我创建了一个for each if 做一个 for i in shapes if i color 1 displayShape i 电话看起来像 for
  • 用于挂钩进程函数的 Linux 模块

    我有一个问题 也许你有一些关于这方面的信息 我想在运行进程中挂钩套接字接收函数 recv 并修改传入数据 我怎么知道 我可以使用内核模块来做到这一点 但我找不到有关如何执行此类挂钩的信息 我尝试过其他方法 例如 Netfilter ipta
  • 使用 Alamofire ObjectMapper 映射到 Swift 对象问题显示 nil

    我是 iOS 和 Swift 开发环境的新手 我试图使用 Alamofire 来提取 JSON 并使用 AlamofireObjectMapper 将检索到的 JSON 集合映射回我的 Swift 对象 问题是我可以通过 Alamofire
  • Calendar.getTime() 失败,并显示 java.lang.IllegalArgumentException:MINUTE(对于亚洲/新加坡时区)

    为什么这段代码会失败 目的是删除时间部分 String dateStr 1982 01 01 String timeZoneID Asia Singapore DateFormat dateFormat new SimpleDateForm