【问题标题】:String date to SQL date adding years字符串日期到 SQL 日期加年
【发布时间】:2014-10-16 11:32:32
【问题描述】:

我正在使用SimpleDateFormat 将日期字符串转换为 java.sql.date。
在转换时,我遇到了一个问题,即自动添加年份。
代码:

String d="2012-12-04T08:48:00";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd'T'HH:MM:SS");
java.util.Date date = null;
date = formatter.parse(d);
System.out.println("UTIL DATE: "+date);
System.out.println("SQL DATE: "+new Date(date.getTime()));  

输出:

UTIL DATE:  Fri Dec 04 08:12:00 IST 2015  
SQL DATE:  2015-12-04    

我应该得到 2012 年的日期,但它加起来是 3 年,我的代码有什么问题吗?
提前致谢。

【问题讨论】:

    标签: java date simpledateformat sqldatetime


    【解决方案1】:

    mm 代表分钟,MM 用于匹配月份 - 交换字段模式

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
    

    【讨论】:

    • 没错!而这三年来自月份值“48”,也就是 3*12 个月太多了(=> 3 年)。
    • 您的解决方案有误。时间应该:mm:ss我觉得
    • @Reimeus 我编辑了您的建议,因为您还放错了一些字段模式(分钟和秒)。
    【解决方案2】:

    将您的简单日期格式更改为以下代码:

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
    

    这里mm 是分钟,MM 是蒙特。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 2016-04-02
      相关资源
      最近更新 更多