我正在将存储在日历对象中的日期转换为字符串,以便在MySQL中进行查询。我需要格式为“ yyyy-MM-dd HH:mm:ss”的字符串,即:“
2010-01-01 15:30:00”。我正在使用类似的代码:
Calendar TimeStop = Calendar.getInstance();
TimeStop.set(2010, 01, 01, 15, 30, 0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String TimeStop_Str = sdf.format(TimeStop.getTime());
现在,该字符串的,而不是“2010 - 01 -01 15:30:00”像我所期望的是“2010 - 02 -01
15:30:00”。我已经在http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html上检查了解析器公式中的可能错误(例如,大写的MM表示月份或大写的HH)数小时),但没有成功。
我猜应该设置其他字段,或者还有另一种方法…有什么主意吗?
Calendar.JANUARY
实际上0
不是1
。
当你提供01
的是当月领域set
,你每月实际设置至2月,这就是为什么你02
当SimpleDateFormat
它呈现为MM
。
使用任何一种Calendar.get/set
方法时,都必须采取额外的预防措施,以确保您意识到“自然的”基于1的索引与更“笨拙的”
Calendar
基于0的索引之间的差异。每当您获取/设置a的月份时Calendar
,总有可能导致严重的错误。
这只是那些真正尴尬的设计之一Calendar
,还有很多不足之处。Joda
Time是目前可用的更好,更令人愉快的日期/时间API库之一,因此,如果有可能,您可以考虑改用该库。
Calendar.MONTH
-“字段get
和set
表示月份的字段号。这是日历特定的值。年份的第一个月JANUARY
为0”。Calendar.set(…, int month, …)
-“ month
-用于设置MONTH
日历字段的值。月份值从0开始,例如1月份为0。另外,请注意,这01
实际上是一个八进制文字(即以8为底)。您不应该养成使用0
整数常量(第3.10.1节)的习惯,因为除非您非常小心,否则它们可能导致细微的错误/错误。
例如,int i = 09;
是非法的Java代码。
System.out.println(010); // prints 8, not 10
问题内容: 你好,我有一本字典 在其中我得到日期“ 2017-01-27T18:36:36Z ”。我想将其转换为可读格式: dd-MM-yyyy hh:mm:ss 。我尝试通过 但是变得零。:( 以简单格式获取日期的正确方法是什么? 问题答案: 您需要输入格式将ISO8601字符串转换为日期,并且需要输出格式将日期转换回字符串:
问题内容: 我在网络上阅读了更多问题,但还没有找到解决方案。 我有一个完全像这种格式的 字符串, 例如“ 14/05/1994”。 我需要以 相同的格式* 将其隐藏到 java.util.Date 中。 * 我试过了: 但结果是:1994年5月14日星期六星期六00:00:00 结果是:1994年5月14日不是字符串,而是java.util.Date? 问题答案: 一个不 具有 的格式。这只是个约
问题内容: 我有一个格式。我希望它采用以下格式 以下是我尝试进行此转换的示例: 我得到的输出仍然不是格式。 请让我知道如何格式化从到 问题答案: 是自Unix纪元(1970年1月1日UTC:00:00)以来的毫秒数的容器。 它没有格式的概念。 输出…
问题内容: 我有一个像这样的字符串。我想将其转换为相同格式的日期。我尝试过这样的事情: 但是输出是不同的格式,例如。我怎样才能使其按需工作。谁能帮我。我知道这可能是重复的,但我没有发现任何运气。 问题答案: 从Java APIhttps://docs.oracle.com/javase/8/docs/api/java/util/Date.html Date类表示特定的时间瞬间,精度为毫秒。 试着去
问题内容: 我正在尝试使用以下方式将dd-mm-yyyy格式的字符串转换为JavaScript中的日期对象: 包含格式为dd-mm-yyyy的日期。当我执行以下操作时,我得到“无效日期”: 这是因为符号“-”吗?我该如何克服? 问题答案: 分割为“-” 将字符串解析为所需的部分: 使用正则表达式 为什么不使用正则表达式? 因为您知道将要使用由连字符分隔的三部分组成的字符串。 但是,如果您要在另一个
问题内容: 我有一个名为的表,还有一个名为的列,ID的数据如下所示: IN_Date的数据类型为varchar(50)。 我正在尝试将IN_Date转换为mm / dd / yyyy格式。我尝试这样做: 但是格式仍然没有改变。谁能告诉我我要去哪里错了 问题答案: 您需要先进行转换才能将数据固定(正确的数据类型), 然后再 格式化…