【问题标题】:Java and MySQL date problemJava和MySQL日期问题
【发布时间】:2010-10-18 05:55:03
【问题描述】:

我做一个 rs.getTimestamp("日期时间")

在 Java 中。

在数据库中,这个日期时间是 2009/03/06 02:47:18

但时间返回为 14:47:18

我对 MySQL 日期不是很了解,所以我希望能解释一下为什么会发生这种情况。

【问题讨论】:

  • 您确定数据库中的时间不是下午 2:47:18 吗?因为那正好是 14:47:18
  • 是的。这只是使用时间来检索记录变得复杂

标签: java mysql time


【解决方案1】:

没关系。它与 MySQL 或任何数据库无关。这是 Timestamp 默认显示的格式,我相信。这并不意味着它错过了日期或其他东西。

您始终可以在代码中以任何格式设置方法返回的时间戳。查看java.text.SimpleDateFormat 类。或者更好的是,查看更复杂的Joda Time

【讨论】:

  • 我使用 SimpleDateFormatter 格式化它,使用 HHmmss 作为我的格式。
  • 试试小“h”。类似“hhmmss a”
  • 要和 MySQL 一样,试试 "yyyy/MM/dd hh:mm:ss"
  • 我会尝试,但我可能会补充一点,如果我使用 SQL Server,我不会遇到这个问题
  • 它成功了,谢谢,不过我不确定它是否会长期有效。
【解决方案2】:

两件事。首先,我认为我们需要示例代码。从你给我们的情况来看,发生了什么根本不清楚。上下文、用法、数据库架构和示例行。

其次,ResultSet.getTimestamp() 应该返回 Timestamp 类型的对象,而不是任何类型的字符串。

【讨论】:

    【解决方案3】:

    SimpleDateFormat 时间 = new SimpleDateFormat("HHmmss");

    datime = time.format(rs.getTimestamp("datetime"))

    然后将 datime 打印到文件中。

    表中的日期时间列是日期时间数据类型

    【讨论】:

    • 要和 MySQL 一样,试试 "yyyy/MM/dd hh:mm:ss"
    猜你喜欢
    • 1970-01-01
    • 2014-02-18
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多