我想将从此JXDatePicker派生的值插入Java DB中的Date字段。我应该如何以时间表示为dd / mm / yyyy而没有其他任何东西的方式获得此控制器的日期?!
答案 0 :(得分:6)
您可以从Date
获取JXDatePicker.getDate()
,然后使用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
类也符合您的最佳利益。