当前位置: 首页 > 面试题库 >

Java SimpleDateFormat格式问题与yyyy

陶瀚玥
2023-03-14
问题内容

我在使用formatSimpleDateFormat对象的方法时遇到麻烦。

有问题的代码是:

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()).format(date);

其中“ date”是使用Calendar.getTimeInMillis()中的long int创建的Date对象

Calendar cal = Calendar.getInstance();
Date date = new Date(cal.getTimeInMillis());

除字符串的年份部分外,其他所有东西都工作正常。当我传递日期时,输出的字符串如下所示:

0044-09-10 05:30:24

传递的日期对象是从以下类型返回的长整数创建的:

Calendar.getTimeInMillis();

我相信从此方法返回的数字是从1月1日算起的毫秒数。1970年,我想这是个问题,但是即使我加上1970年的毫秒数(大声笑,也许做错了事,但值得一试:P),它仍然解析为0044年部分。

我已经完成了许多Google搜索,所有这些搜索似乎都在传递给SimpleDateFormat构造函数的字符串中指出了简单的问题,因此在这里我很茫然。

任何帮助是极大的赞赏。

请让我知道是否需要其他信息,我会尽力提供。

再次感谢!

编辑:

我想我会进一步解释上下文:

技术人员将进行呼叫,并在到达现场时将呼叫标记为“已开始”。然后,该应用将创建一个Calendar实例,并保存从返回的long int
Calendar.getTimeInMillis()

技术人员完成呼叫后,他/她会将呼叫标记为“完成”。再次Calendar创建一个实例,Calendar.getTimeInMillis()并保存从其返回的long
int 。

这样可以轻松计算“通话时间”。

现在,当使用技术人员在应用程序中使用的结束表格时,在调用html" target="_blank">过程中保存的长整数将传递给一个Date对象,然后该对象传递给一个SimpleDateFormat.format()方法。

这就是问题所在。再次感谢,希望能有所帮助。


问题答案:

要计算日期/时间之间的持续时间,请不要依赖于减去毫秒,这是非常不可靠的。

如果您使用的是Java 8,则应利用新的java.timeAPI,例如…

LocalDateTime dt1 = LocalDateTime.of(2014, 9, 11, 10, 0);
LocalDateTime dt2 = LocalDateTime.of(2014, 9, 11, 12, 0);

Duration duration = Duration.between(dt1, dt2);
System.out.println(duration.toDays());
System.out.println(duration.toHours());
System.out.println(duration.toMinutes());
System.out.println(duration.getSeconds());

哪个输出…

0
2
120
7200

有关更多详细信息,请查看期间和持续时间。

或者,您可以使用JodaTime(java.time基于)



 类似资料:
  • SimpleDateFormat对象的方法有问题。 所涉代码是: 其中“Date”是使用Calendar.getTimeInMilis()中的长int创建的Date对象; 非常感谢任何帮助。 如果需要任何其他信息,请让我知道,我会尽我所能提供。 再次感谢! 这就是问题产生的地方。再次感谢,希望这有帮助。

  • 我想知道是否有人能帮我弄清楚为什么当我阅读. doc文件时,我的文本没有对齐。到目前为止,在我的代码中,我使用的是WordExtractor,但是我遇到了格式问题,有些东西没有正确对齐。这是我使用1.7Java编写的代码。 程序如何显示文档。 应该是这样展示的

  • 问题内容: 我正在将时间戳字段格式化为“ DD / MM / YYYY”格式,以获取该日期的所有已处理记录。 上面的查询返回0计数。 上面的查询返回29个计数。 如果我运行: 等等… to_date格式将年份格式化为 0015 ? 如何避免将年份格式化为0015格式?我需要2015年的格式。请帮助我解决此问题。 问题答案: 截止日期(event_dt,“ DD / MM / YYYY”) 根据您对

  • 问题内容: 我有具有以下结构的Java类(类名并不表示任何东西,我只是在组成它们)。 整理测试实例时,JAXB生成的XML输出是我遇到的问题。XML输出将始终如下所示: 如您所见,某些元素没有正确缩进(即,最深的元素,计数和句点)。这是为什么?我创建JAXB上下文的方式有问题吗?还是JAXB可以递归缩进多少元素有最大限制?我该如何解决?请注意,我也已将JAXB_FORMATTED_OUTPUT设置

  • 后端实体类使用了@jsonformat注释,但在前端获取数据时24-hour和12hour中的时间格式似乎存在问题。例如,后端时间为2021-5-21 00:50,但发送到前端的时间变成了2021-5-21 12:50。是@jsonformat的属性设置有问题还是前端。

  • 问题内容: 在有关SQLite的)这篇文章中,aaronasterling告诉我 : 是错的 : 是正确的 :是对的 但是,我认为第一和第二是相同的。这三个之间有什么区别? 问题答案: “attach "%s" as toMerge” % “b.db” 您应该使用而不是,这样就不必逃脱。 您使用了不建议使用的旧格式字符串。 这将使用来自较新Python版本的新格式字符串功能,如果可能的话,应使用旧