谁能告诉我这段代码有什么问题:
System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'").parse("2015-04-22T19:54:11.827Z"));
System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'").parse("2015-04-22T19:54:11.0Z"));
输出是:
Wed Apr 22 20:07:47 GMT+02:00 2015
Wed Apr 22 19:54:00 GMT+02:00 2015
当输入时间以毫秒为单位时,请注意以分钟为单位的差异。
对于SimpleDateFormat
,毫秒格式的值包含大写S
字符,而不是s
秒的小写字符。
秒(秒)55
毫秒数978
它解释827
为秒,并将这些秒(847秒是13分钟47秒)添加到您的值中。
使用SSS
毫秒。
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
顺便说一句,如果相同,则无需SimpleDateFormat
多次创建。您可以创建一次,将其保存到变量中,然后parse
多次调用,对于您要解析的每个日期/时间字符串一次。
问题内容: 我正在尝试将()解析为,但是日期却超出预期。 码: 当我从上面的代码中将返回的日期输入数据库时,我正确地获取了日期,但是时间始终是00:00。 问题答案: YYYY应该是yyyy
问题内容: 我有字符串格式的日期,我想将其解析为使用日期。 我将其解析为: 但是奇怪的是,如果我传递的是“ 03-08- 201309 hjhkjhk ”或“ 03- 88 -2013”或 43 -88-201378,它不会抛出错误,而是对其进行解析。 为此,我必须编写正则表达式模式以检查日期的输入是否正确。但是为什么会这样呢? 代码: 问题答案: 您应该使用: 我不确定是否可以捕获 到 您想
问题内容: 我已经编写了此示例程序,其中我想将日期转换为另一种格式。使用简单的日期格式时,我没有看到预期的日期。 我看到以下输出。第一种是使用简单的日期格式,第二种是手动翻译。 因此,如何使简单的日期格式输出与手动格式类似的值 问题答案: 看来您不能使用6位数字表示毫秒。您的程序关闭了11分17秒。660秒= 11分钟,您可以休息17秒。因此,它只能将您输入的内容从秒转换为分钟,因为它不能接受超过
问题内容: 我正在使用 其中的字符串是格式。 例如,如果是40/02/2013,我将获得一个错误,而parse方法将返回Date 2013年3月12日(12/03/2013)。我在抱怨什么? 问题答案: 设置宽大处理位: 指定日期/时间解析是否宽松。使用宽大的解析,解析器可以使用试探法来解释与该对象的格式不完全匹配的输入。在严格分析的情况下,输入必须与该对象的格式匹配。 如下代码: 给出: 笔记
问题内容: 有人知道为什么java.util.Caldendar中的MINUTE方法返回不正确的分钟吗? 问题答案: Calendar.MINUTE不是实际的分钟,而是一个常量索引值,该值传递到“get()”中以获取该值。例如:
我尝试将字符串转换为日期。