为了账号安全,请及时绑定邮箱和手机立即绑定

Date toString() 方法返回不同的字符串

Date toString() 方法返回不同的字符串

慕田峪9158850 2022-09-01 16:43:02
我正在使用“JdbcTemplate”弹簧豆从数据库中查询数据。返回的对象包含一个数据字段。我面临的问题是,当我控制台打印时,它会返回“2017-08-04”,但是当我这样做时,它会返回 。我已经读到java类不包含任何格式,并且格式化我们使用的任何类。所以我的问题是对象中的哪个参数导致它以不同的格式打印,我如何改变它的行为?returnedObject.getDate().toString()new Date().toString()Mon Mar 25 17:36:32 GMT 2019DateDateSimpleDateFormatDate
查看完整描述

4 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

JDBCTemplate 正在返回一个扩展 的实例。toString() 实现的 JavaDocs 解释了使用的日期格式:java.sql.Datejava.util.Date

以日期转义格式 yy-mm-dd 设置日期的格式。

java.util.Date 的 toString() 实现使用更长的日期时间格式:

将此 Date 对象转换为以下格式的字符串:dow mon dd hh:mm:ss zzz yyyy

日期字段的类型可以是,并且您仍然可以为该字段分配一个或任何子类。它是变量的运行时类,它通过动态方法调度确定行为,即调用哪个实现。Objectjava.sql.DatetoString()

如果要将子类转换为“普通”实例,可以查看此处。请注意,时间部分将始终从 SQL 中省略。如果需要该信息,则应改用。java.util.DateDATETIMESTAMP



查看完整回答
反对 回复 2022-09-01
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

当我控制台打印返回Object.getDate().toString()时,它返回“2017-08-04”,但是当我做新的Date().toString()时,它返回星期一 Mar 25 17:36:32 GMT 2019

这很简单。

该代码返回一个类型的对象,而在第二种情况下,类很可能是 。returnedObject.getDate()java.sql.DateDatejava.util.Date

根据 的 java 文档,它的方法返回一个格式的字符串。java.sql.DatetoStringyyyy-mm-dd

根据 的 java 文档,它的方法以格式返回一个 String。java.util.DatetoStringdow mon dd hh:mm:ss zzz yyyy


查看完整回答
反对 回复 2022-09-01
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

尽管 Date 类旨在反映协调世界时 (UTC),但根据日期类的 Java 文档,它可能无法完全反映协调世界时 (UTC),具体取决于 Java 虚拟机的主机环境。我认为这意味着它正在查看系统的日期格式,而SQL查询则带有UTC格式。没有更改格式的日期参数。您需要像通过日期格式化程序所说的那样应用它。查看 DateFormater 类:https://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html 特别是格式方法。


查看完整回答
反对 回复 2022-09-01
?
翻阅古今

TA贡献1780条经验 获得超5个赞

java.sql.Date延伸。您可以使用getTime()和setTime(long time)以ms为单位获取两种日期,这些日期都可以用于创建相同的类型,因此您可以以您喜欢的任何格式获取字符串。java.util.Date

但是,请注意,Java 的旧日期类是垃圾(不是线程安全的,不是不可变的,并且命名不当(它们是时间戳而不是日期)。

有更高级的第三方库。看看java.util.time,这是做到这一点的新方法。


查看完整回答
反对 回复 2022-09-01
  • 4 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信