【问题标题】:Convert String to Date and time in java在java中将字符串转换为日期和时间
【发布时间】:2017-09-07 21:04:19
【问题描述】:

我的程序从数据库读取数据,我想将一些字段转换为日期格式(日期和时间分别)。我可以从 sql 查询中做到这一点,但可以从 java 代码中做到这一点。

表格中的日期格式 = MMDDHHMISS(月日时分秒)

这些是我现在使用的 sql 查询-

TO_CHAR(TO_DATE(DATETIMECOLUMN, 'MMDDHH24MISS'),'DD/MM/YYYY') AS MY_DATE

TO_CHAR(TO_DATE(DATETIMECOLUMN, 'MMDDHH24MISS'),'HH24:MI:SS') AS MY_TIME

提前致谢!

【问题讨论】:

  • 我通过了上述答案,但找不到将我的字符串类型转换为日期时间的方法
  • 这个问题已经被问过好几次了。请加倍搜索。
  • 您的结果日期应该包括一年吗?如果是这样,如何决定哪一年?如果满足您的要求,Java 确实为没有年份的日期提供了 MonthDay 类。

标签: java date time


【解决方案1】:

这里有一个建议:

    DateTimeFormatter databaseStringFormatter = DateTimeFormatter.ofPattern("MMddHHmmss"); 
    String sampleDatabaseString = "1129225145";
    MonthDay myDate = MonthDay.parse(sampleDatabaseString, databaseStringFormatter);
    LocalTime myTime = LocalTime.parse(sampleDatabaseString, databaseStringFormatter);
    System.out.println("Date: " + myDate + ". Time: " + myTime + '.');

以上印刷品

Date: --11-29. Time: 22:51:45.

MonthDay 是一个没有年份的日期,适用于生日和其他周年纪念日。

除非有特定的理由避免它,我认为您应该将数据库列的数据类型更改为datetime 或类似的,然后从结果集中检索LocalDateTime 对象,如this answer 所示。这将使您免于在数据库查询或 Java 中从字符串到日期和时间的任何转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 2016-03-08
    • 2015-11-24
    • 2017-02-22
    • 2014-04-23
    • 2015-09-17
    • 2015-08-17
    相关资源
    最近更新 更多