Date、String、Timestamp之间的转换

本文详细介绍了在Java中如何将字符串转换为日期(Date)对象,以及如何将日期对象转换回字符串。通过使用SimpleDateFormat和DateFormat类,可以实现各种格式的日期字符串与Date、java.sql.Date和Timestamp之间的相互转换。

 

 1  public static void main(String[] args) {  
 2    // TODO Auto-generated method stub   
 3  DateFormat format = new SimpleDateFormat("yyyy-MM-dd");           
 4  Date date = null;      
 5  String str = null;                    
 6               
 7  // String转Date       
 8  str = "2009-01-06";            
 9 try {      
10    date = format.parse(str); // Wed sep 26 00:00:00 CST 2007       
11 } catch (ParseException e) {      
12   e.printStackTrace();      
13 }                 
14 date = java.sql.Date.valueOf(str); // 只保留日期部分,返回的是java.sql.Date 2007-9-26    
15 System.out.println(date);  
16 // Date转String       
17 date = new Date();   // Wed sep 26 18 17:14:01 CST 2007          
18 str = format.format(date); // 2007-9-26       
19 System.out.println(str);  
20 format = DateFormat.getDateInstance(DateFormat.SHORT);      
21 str = format.format(date); // 07-9-26   
22 System.out.println(str);  
23               
24 format = DateFormat.getDateInstance(DateFormat.MEDIUM);      
25 str = format.format(date); // 2007-9-26      
26 System.out.println(str);  
27 format = DateFormat.getDateInstance(DateFormat.FULL);      
28 str = format.format(date); // 2007年9月26日 星期三    
29 System.out.println(str);  
30 }  
 1 public static void main(String[] args) {  
 2   // TODO Auto-generated method stub   
 3 DateFormat format = new SimpleDateFormat("yyyy-MM-dd");           
 4 Date date = null;      
 5 String str = null;                    
 6              
 7 //String转Date       
 8 str = "2009-01-06";            
 9 try {      
10   date = format.parse(str); // Wed sep 26 00:00:00 CST 2007       
11 } catch (ParseException e) {      
12    e.printStackTrace();      
13 }                 
14 date = java.sql.Date.valueOf(str); // 只保留日期部分,返回的是java.sql.Date 2007-9-26    
15 System.out.println(date);  
16 // Date转String       
17 date = new Date();   // Wed sep 26 18 17:14:01 CST 2007          
18 str = format.format(date); // 2007-9-26       
19 System.out.println(str);  
20 format = DateFormat.getDateInstance(DateFormat.SHORT);      
21 str = format.format(date); // 07-9-26   
22 System.out.println(str);  
23              
24 format = DateFormat.getDateInstance(DateFormat.MEDIUM);      
25 str = format.format(date); // 2007-9-26      
26 System.out.println(str);  
27 format = DateFormat.getDateInstance(DateFormat.FULL);      
28 str = format.format(date); // 2007年9月26日 星期三    System.out.println(str);  
29 }  

Timestamp和String之间转换的函数:

 

 

 1 public static void main(String[] args) {  
 2   // TODO Auto-generated method stub   
 3 //Timestamp转化为String:   
 4    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒   
 5    Timestamp now = new Timestamp(System.currentTimeMillis());//获取系统当前时间   
 6     String str = df.format(now);  
 7    System.out.println(str);  
 8      
 9  
10  
11 //String转化为Timestamp:   
12 SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
13     Date date = new Date();  
14    String time = df1.format(date);  
15    Timestamp ts = Timestamp.valueOf(time);  
16    System.out.println(ts);  
17  
18 }  
 1 public static void main(String[] args) {   
 2   // TODO Auto-generated method stub    
 3    //Timestamp转化为String:    
 4    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒    
 5    Timestamp now = new Timestamp(System.currentTimeMillis());//获取系统当前时间    
 6     String str = df.format(now);   
 7     System.out.println(str);   
 8       
 9  
10  
11 ///String转化为Timestamp:    
12 SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
13     Date date = new Date();   
14     String time = df1.format(date);   
15     Timestamp ts = Timestamp.valueOf(time);   
16     System.out.println(ts);   
17    
18 }  

 

 

转载于:https://www.cnblogs.com/liuling/archive/2012/07/13/date.html

Java后端开发中,处理 `Date`、`String` 和 `Timestamp` 类型之间转换是常见的需求,尤其在与数据库交互或处理前端传入的时间数据时。以下是这些类型之间的常用转换方法。 ### DateString转换 使用 `SimpleDateFormat` 可以实现 `Date` 和 `String` 之间的相互转换。需要注意的是,`SimpleDateFormat` 不是线程安全的,建议在多线程环境下使用 `ThreadLocal` 封装或者使用 `DateTimeFormatter`(Java 8+)。 #### Date 转换String ```java import java.text.SimpleDateFormat; import java.util.Date; public class DateToStringExample { public static void main(String[] args) { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formattedDate = sdf.format(date); System.out.println("Formatted Date: " + formattedDate); } } ``` #### String 转换Date ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class StringToDateExample { public static void main(String[] args) { String dateStr = "2023-10-01 12:30:45"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date date = sdf.parse(dateStr); System.out.println("Parsed Date: " + date); } catch (ParseException e) { e.printStackTrace(); } } } ``` ### DateTimestamp转换 `java.util.Date` 和 `java.sql.Timestamp` 之间可以通过构造函数或静态方法进行转换。 #### Date 转换Timestamp ```java import java.sql.Timestamp; import java.util.Date; public class DateToTimestampExample { public static void main(String[] args) { Date date = new Date(); Timestamp timestamp = new Timestamp(date.getTime()); System.out.println("Timestamp: " + timestamp); } } ``` #### Timestamp 转换Date ```java import java.sql.Timestamp; import java.util.Date; public class TimestampToDateExample { public static void main(String[] args) { Timestamp timestamp = new Timestamp(System.currentTimeMillis()); Date date = new Date(timestamp.getTime()); System.out.println("Date: " + date); } } ``` ### StringTimestamp转换 由于 `Timestamp` 本质上是 `Date` 的子类,因此 `String` 到 `Timestamp` 的转换通常需要先将 `String` 转换为 `Date`,然后再转换为 `Timestamp`。 #### String 转换Timestamp ```java import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class StringToTimestampExample { public static void main(String[] args) { String dateStr = "2023-10-01 12:30:45"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date date = sdf.parse(dateStr); Timestamp timestamp = new Timestamp(date.getTime()); System.out.println("Timestamp: " + timestamp); } catch (ParseException e) { e.printStackTrace(); } } } ``` ### TimestampString转换 #### Timestamp 转换String ```java import java.sql.Timestamp; import java.text.SimpleDateFormat; public class TimestampToStringExample { public static void main(String[] args) { Timestamp timestamp = new Timestamp(System.currentTimeMillis()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formattedTimestamp = sdf.format(timestamp); System.out.println("Formatted Timestamp: " + formattedTimestamp); } } ``` ### Java 8 及以上版本的日期时间 API 从 Java 8 开始,引入了新的日期时间 API(`java.time` 包),包括 `LocalDateTime`、`LocalDate`、`LocalTime` 等类,提供了更强大的功能和更好的线程安全性。 #### LocalDateTime 转换String ```java import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class LocalDateTimeToStringExample { public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedNow = now.format(formatter); System.out.println("Formatted LocalDateTime: " + formattedNow); } } ``` #### String 转换为 LocalDateTime ```java import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class StringToLocalDateTimeExample { public static void main(String[] args) { String dateStr = "2023-10-01 12:30:45"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime dateTime = LocalDateTime.parse(dateStr, formatter); System.out.println("Parsed LocalDateTime: " + dateTime); } } ``` #### LocalDateTime 转换Timestamp ```java import java.sql.Timestamp; import java.time.LocalDateTime; public class LocalDateTimeToTimestampExample { public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); Timestamp timestamp = Timestamp.valueOf(now); System.out.println("Timestamp: " + timestamp); } } ``` #### Timestamp 转换为 LocalDateTime ```java import java.sql.Timestamp; import java.time.LocalDateTime; public class TimestampToLocalDateTimeExample { public static void main(String[] args) { Timestamp timestamp = new Timestamp(System.currentTimeMillis()); LocalDateTime dateTime = timestamp.toLocalDateTime(); System.out.println("LocalDateTime: " + dateTime); } } ``` ### 总结 - 使用 `SimpleDateFormat` 进行 `Date` 和 `String` 之间转换,但在多线程环境中需注意线程安全问题。 - `Date` 和 `Timestamp` 之间转换可以通过构造函数或 `getTime()` 方法实现。 - `String` 和 `Timestamp` 之间转换通常需要通过 `Date` 作为中间桥梁。 - 在 Java 8 及以上版本中,推荐使用 `java.time` 包中的类进行日期时间处理,它们提供了更好的线程安全性和更直观的操作方式。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值