【发布时间】:2011-11-18 15:36:20
【问题描述】:
我想将从这个 JXDatePicker 派生的值插入到 Java DB 中的日期字段中。我应该如何仅以时间表示为 dd/mm/yyyy 而没有其他内容的方式从该控制器中获取日期??!
【问题讨论】:
我想将从这个 JXDatePicker 派生的值插入到 Java DB 中的日期字段中。我应该如何仅以时间表示为 dd/mm/yyyy 而没有其他内容的方式从该控制器中获取日期??!
【问题讨论】:
您可以从JXDatePicker.getDate() 获取Date,然后使用SimpleDateFormat 将日期格式化为所需的格式。
试试:
SimpleDateFormat formater = new SimpleDateFormat("dd/MM/yyyy");
formater.format(myDatePicker.getDate());
请注意,我使用MM 代替您使用的mm 来表示月份。请参阅 SimpleDateFormat javadoc 了解您可以使用的模式字母。
跟进
为了完整起见,我不得不提一下,将表示日期的格式化字符串放入数据库通常是个坏主意;例如,当您想以另一种格式显示它或使用SQL 进行简单比较时会发生什么。
存储日期/时间的一种方法是使用从Date.getTime() 获得的时间戳。这是Date类'getTime()javadoc:
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来的 毫秒 数 由此 Date 对象表示。
在您的数据库中存储Date 的这种表示形式可以让您在检索时间戳时更轻松地创建Date 对象:
Long myTimeStamp = getTimeStampFromResultSet();
Date date = new Date(myTimeStamp);
或者使用SQL中的列做一个简单的对比:
SELECT * FROM MY_TABLE WHERE MY_DATE > ?
它还使其具有一定的便携性,例如,您可以将时间戳发送到使用不同技术构建的瘦客户端。
话虽如此,使用 Joda Time 这样的日期和时间库而不是使用不可靠且不方便的 Java Date 或 Calendar 类也符合您的最大利益。
【讨论】:
hh:mm:ss
SimpleDateFormat 类,模式字母请参阅答案中的 javadoc 链接。