当前位置: 首页 > 知识库问答 >
问题:

将一种格式的字符串日期转换为另一格式的日期对象

东郭昌胤
2023-03-14

我有一个输入日期作为字符串,格式为dd/MM/yyyy

现在我想把它转换成日期对象,格式为yyyy-MM-dd

目前我正在做

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM-dd");
Date dateObject = null;
  try {
    String date2 = formatter2.format(formatter.parse(date));
    dateObject = formatter2.parse(date2);
  }

输入为:“2013年4月2日”

但我的约会对象是…

所需输出为:2013-02-04(不是字符串,而是日期对象)

共有3个答案

余弘毅
2023-03-14

我认为你在这里提出了错误的问题。正如评论中所说,您需要这种字符串格式来查询数据库,因此,由于JDBC使用java.sql.Date对象,请严格要求它,并将您的java.util.Date对象转换为JDBC托管类型并直接使用它(无需担心格式)。

试着这样做:

String stmt = "select field from table where dateColumn = ?";
PreparedStatement st = connection.prepareStatement(stmt);
st.setDate(1, new java.sql.Date (yourJavaUtilDateObj);
ResultSet rs = st.executeQuery();

应该在每个JDBC驱动程序上工作。

巫马翰翮
2023-03-14

您已经在< code>date2中设置了格式化日期。您不需要再次解析它。

String date2 = formatter2.format(formatter.parse(date));
//dateObject = formatter2.parse(date2); // Not needed

System.out.println(date2);
於和志
2023-03-14

日期没有特定的输出格式。当您解析第一个日期时,这就是日期。只需存储它,当需要将其输出为所需格式时,使用第二个<code>SimpleDataFormat<code>。

编辑:

所谓“存储它”,我的意思是保留对它的引用,直到您需要以所需的字符串格式表示它。

 类似资料:
  • 问题内容: 有没有一种简单的方法可以将一种日期格式转换为PHP中的另一种日期格式? 我有这个: 但是我当然希望它返回一个当前日期,而不是返回“黎明”。我究竟做错了什么? 问题答案: 第二个参数必须是正确的时间戳(自1970年1月1日以来的秒数)。您正在传递一个字符串,date()无法识别。 您可以使用 strtotime() 将日期字符串转换为时间戳。但是,即使strtotime()也无法识别格式

  • 问题内容: 我想要这种格式 问题答案: 您需要先 解析 日期字符串(使用方法),才能 使用与格式匹配的格式获取对象。 然后使用所需的格式来 格式化 Date对象(Use 方法)以获取字符串。 输出:- 第一种格式是RFC 822 TimeZone与您的日期字符串匹配。有关在日期格式中使用的其他各种选项,请参见。

  • 我在presto上,把日期格式化为varchar,看起来像- 我如何转换这个?

  • 问题内容: 我正在寻找使用SQL将一种日期格式转换为另一种格式。我正在使用用于SQLite的数据库浏览器,日期存储在“ TEXT”类型的列中。 这是当前格式的2个示例: 2017/4/17上午9:09:09 2017/10/4下午10:21:13 请注意,在当前的日期,月份和小时格式中,如果只有一位数字,则当前不会以前导“ 0”填充。他们也把月份放在第一位,然后是日期,然后是年份。这两个示例应转换

  • 我得到一串零。有人能帮忙吗?

  • 问题内容: 我正在使用代码将字符串格式化为日期 但是,如何将日期从格式转换为格式? 问题答案: 使用SimpleDateFormat#format(Date):