把“yyyy-mm-dd”String型转为同格式的Date型方法

本文介绍了一种将表单提交的时间转换为与数据库中DateTime类型字段进行比较的有效方法。通过使用java.sql.Date.valueOf(String s)方法,可以将字符串形式的日期转换为能够用于数据库操作的日期格式。然而,此方法仅支持yyyy-mm-dd格式的日期转换。

项目中要把表单传过来的时间转为能和数据库中DateTime型字段比较大小的形式,查了好多方法,大部分都是说用SimpleDateFormat转换,但是转出来的结果总是像FRI Jan 29 CTS 2010之类的形式,后来终于让我在java.sql.Date中找到了一个办法(在java.util.Date里没找到)java.sql.Date.valueOf(String s);,只是这个方法只能转换成"yyyy-mm-dd" 形式的日期,不知道能不能随意的加上时分秒(API上说SQL Date 值没有时间组件,所以我估计不行)

Java 中,将 String 类型的时间转换为 `yyyy-MM-dd` 格式有多种方法,下面介绍几种常见的实现方式。 #### 使用 SimpleDateFormat ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class StringToDateExample { public static void main(String[] args) { String testDate = "2023-01-05 15:15:12"; try { SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = inputFormat.parse(testDate); SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd"); String formattedDate = outputFormat.format(date); System.out.println(formattedDate); } catch (ParseException e) { e.printStackTrace(); } } } ``` #### 使用 FastDateFormat(Apache Commons Lang) ```java import org.apache.commons.lang3.time.FastDateFormat; import java.text.ParseException; import java.util.Date; public class StringToDateExample2 { public static void main(String[] args) { String testDate = "2023-01-05 15:15:12"; try { FastDateFormat inputFormat = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss"); Date date = inputFormat.parse(testDate); FastDateFormat outputFormat = FastDateFormat.getInstance("yyyy-MM-dd"); String formattedDate = outputFormat.format(date); System.out.println(formattedDate); } catch (ParseException e) { e.printStackTrace(); } } } ``` #### 使用 Java 8 的 DateTimeFormatter ```java import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class StringToDateExample3 { public static void main(String[] args) { String testDate = "2023-01-05 15:15:12"; DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime dateTime = LocalDateTime.parse(testDate, inputFormatter); DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String formattedDate = dateTime.format(outputFormatter); System.out.println(formattedDate); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值