【问题标题】:Parsing the JXDatePicker in order to insert into Java DB Date field?解析 JXDatePicker 以插入 Java DB 日期字段?
【发布时间】:2011-11-18 15:36:20
【问题描述】:

我想将从这个 JXDatePicker 派生的值插入到 Java DB 中的日期字段中。我应该如何仅以时间表示为 dd/mm/yyyy 而没有其他内容的方式从该控制器中获取日期??!

【问题讨论】:

    标签: java swingx


    【解决方案1】:

    您可以从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 DateCalendar 类也符合您的最大利益。

    【讨论】:

    • 感谢一百万!您能否让我知道您将如何处理时间??!
    • 当然,只需使用 javadocs 中记录的时间模式字母;比如hh:mm:ss
    • 酷!你是超级明星!拯救了我的一天:-)
    • 很高兴我能帮上忙。您绝对应该花一些时间了解SimpleDateFormat 类,模式字母请参阅答案中的 javadoc 链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多