String转Date

1:大体思路

  

[html]  view plain  copy
  1. 这种转换要用到java.text.SimpleDateFormat类  
  2.   
  3. 字符串转换成日期类型:  
  4. 方法1:  
  5.   
  6. 也是最简单的方法 Date date=new Date("2008-04-14");  
  7.   
  8. 方法2:  
  9.   
  10. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟  
  11. String dstr="2008-4-24";  
  12. java.util.Date date=sdf.parse(dstr);  
  13.   
  14.   
  15.   
  16. 日期转换成字符串:  
  17.   
  18. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
  19. java.util.Date date=new java.util.Date();  
  20. String str=sdf.format(date);  

 

2:程序实例

[html]  view plain  copy
  1. package test;  
  2. import java.text.DateFormat;  
  3. import java.text.SimpleDateFormat;  
  4. import java.text.ParseException;  
  5. import java.util.Date;  
  6. public class StringOrDate {  
  7.     public static String dateToString(Date date, String type) {  
  8.         String str = null;  
  9.         DateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
  10.         if (type.equals("SHORT")) {  
  11.             // 07-1-18  
  12.             format = DateFormat.getDateInstance(DateFormat.SHORT);  
  13.             str = format.format(date);  
  14.         } else if (type.equals("MEDIUM")) {  
  15.             // 2007-1-18  
  16.             format = DateFormat.getDateInstance(DateFormat.MEDIUM);  
  17.             str = format.format(date);  
  18.         } else if (type.equals("FULL")) {  
  19.             // 2007年1月18日 星期四  
  20.             format = DateFormat.getDateInstance(DateFormat.FULL);  
  21.             str = format.format(date);  
  22.         }  
  23.         return str;  
  24.     }  
  25.     public static Date stringToDate(String str) {  
  26.         DateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
  27.         Date date = null;  
  28.         try {  
  29.             // Fri Feb 24 00:00:00 CST 2012  
  30.             date = format.parse(str);   
  31.         } catch (ParseException e) {  
  32.             e.printStackTrace();  
  33.         }  
  34.         // 2012-02-24  
  35.         date = java.sql.Date.valueOf(str);  
  36.                                               
  37.         return date;  
  38.     }  
  39.     public static void main(String[] args) {  
  40.         Date date = new Date();  
  41.         System.out.println(StringOrDate.dateToString(date, "MEDIUM"));  
  42.         String str = "2012-2-24";  
  43.         System.out.println(StringOrDate.stringToDate(str));  
  44.     }  
在 Java 中,将字符串(String换为日期(Date)可以使用 `SimpleDateFormat` 类,它是 `DateFormat` 的一个具体子类,允许进行日期和文本之间的换和解析 [^1]。 以下是几种实现方法: ### 方法一:使用 `SimpleDateFormat` 类 ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class StringToDateExample { public static Date convert(String s) { Date date = null; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { date = dateFormat.parse(s); } catch (ParseException e) { e.printStackTrace(); } return date; } public static void main(String[] args) { String dateString = "2022-08-26 20:32:26"; Date date = convert(dateString); System.out.println(date); } } ``` ### 方法二:在对象属性赋值时换 ```java import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; class ExampleObject { private Date addTime; public void setAddTime(Date addTime) { this.addTime = addTime; } public Object get(String key) { Map<String, Object> map = new HashMap<>(); map.put("addTime", "2022-08-26 20:32:26"); return map.get(key); } public static void main(String[] args) { ExampleObject o = new ExampleObject(); DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { o.setAddTime(simpleDateFormat.parse(String.valueOf(o.get("addTime")))); } catch (ParseException e) { e.printStackTrace(); } } } ``` ### 方法三:处理包含特定格式的字符串 ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.regex.Pattern; public class StrToDate { public Date str2Date(String dateString) { String FORMAT_STRING = "yyyy-MM-dd HH:mm:ss"; String[] REPLACE_STRING = new String[]{"GMT+0800", "GMT+08:00"}; String SPLIT_STRING = "(中国标准时间)"; try { dateString = dateString.split(Pattern.quote(SPLIT_STRING))[0].replace(REPLACE_STRING[0], REPLACE_STRING[1]); SimpleDateFormat sf1 = new SimpleDateFormat("E MMM dd yyyy HH:mm:ss z", Locale.US); Date date = sf1.parse(dateString); return date; } catch (Exception e) { throw new RuntimeException("时间化格式错误" + "[dateString=" + dateString + "]" + "[FORMAT_STRING=" + FORMAT_STRING + "]"); } } public static void main(String[] args) { StrToDate converter = new StrToDate(); String dateString = "Fri Aug 26 2022 20:32:26 GMT+0800 (中国标准时间)"; Date date = converter.str2Date(dateString); System.out.println(date); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值