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

SimpleDateFormat在Date格式期间错误地将年份向前滚动

司徒池暝
2023-03-14
问题内容

我目前正在使用DateUtils类,该类可帮助格式化整个系统中的日期。我有一个格式为yyyyMMdd的日期,该日期是从字符串解析的。

我进入另一种格式,以接收格式为E d MMM YY的“期间”值。

下面,应该给我一段MON 31 DEC 18的时间。但是,它正在返回MON 31 DEC19。为什么这一年向前发展?

谢谢

final SimpleDateFormat dateFormat_E_d_MMM_YY = new SimpleDateFormat("E d MMM YY");
final SimpleDateFormat dateFormat_yyyyMMdd = new SimpleDateFormat("yyyyMMdd");
final Date date = dateFormat_yyyyMMdd.parse("20181231");
System.out.println(date);
System.out.println(dateFormat_E_d_MMM_YY.format(date));

问题答案:

您有错别字用途,E d MMM yy而不是E d MMM YY

从文档:

y:年

Y:周年



 类似资料:
  • 我想将我的时间戳转换为XXhours:YYminutes字符串。我的方法有时可以正常工作,除非它获得更大的值。例如, 193500000 -

  • 问题内容: 我在代码中使用了SimpleDateFormat(“ dd-MMM-YYYY”),输出错误。 上面的代码给出了: 实际日期:星期二十二月30 13:51:06 IST 2014格式化后:30-Dec-2015 上面的代码是打印日期,年份提前一年。并且此问题仅可在2014年12月28日至31日之间复制。 提前致谢。-阿杰 问题答案: 您正在使用,这是“ ISO-8601周年”。几乎应 始

  • 第二个选项(来自Java SimpleDateFormat(“yyyy-mm-dd't'hh:mm:ss'z'”)将时区作为IST提供) 在这两种情况下,时间都错了。我的笔记本电脑或手机显示的不是当地时间,但输出时间是提前2小时。我怎么才能改变呢?我想有柏林(CEST)的当前时间也显示在我的电脑上。我感谢每一个评论。

  • 问题内容: 我需要一个mysql查询来从数据库表中的以下日期格式中提取年份。 例如: 以下查询不起作用 列类型为varchar。有什么办法解决这个问题? 问题答案: 由于您的subdateshow是VARCHAR列,而不是正确的DATE,TIMESTAMP或DATETIME列,因此必须在使用YEAR之前将字符串转换为日期: 参见http://dev.mysql.com/doc/refman/5.5

  • 本文向大家介绍使用SimpleDateFormat格式化日期,包括了使用SimpleDateFormat格式化日期的使用技巧和注意事项,需要的朋友参考一下 SimpleDateFormat是一个具体的类,用于以对语言环境敏感的方式来格式化和解析日期。SimpleDateFormat允许您从选择任何用户定义的日期时间格式模式开始。 示例 这将产生以下结果- 输出结果 简单的DateFormat格式代