一、string轉換date類型
在很多場景下,我們需要將string類型的日期數據轉換為Date類型。在Java中,一般有以下幾種方法來實現:
1. string轉換成date
使用SimpleDateFormat對象的parse方法,將String類型解析成Date類型:
String strDate = "2020-01-01"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(strDate);
這種方式非常簡單易懂,但是需要注意兩點:
1)String類型與SimpleDateFormat格式必須一致
2)SimpleDateFormat.format()和SimpleDateFormat.parse()都不是線程安全的,需要注意線程安全問題
2. String轉換Date
使用java.sql.Date.valueOf()方法,將String類型格式轉換為Date類型:
String strDate = "2020-01-01"; Date date = java.sql.Date.valueOf(strDate);
這種方式比較簡單,但是必須使用“yyyy-MM-dd”格式的String類型數據,否則會報錯。
3. string轉換integer
使用Calendar類的set方法,將String類型轉換為Date類型:
String strDate = "2020-01-01"; Calendar cal = Calendar.getInstance(); String[] dateArr = strDate.split("-"); int year = Integer.valueOf(dateArr[0]); int month = Integer.valueOf(dateArr[1]) - 1; int day = Integer.valueOf(dateArr[2]); cal.set(year, month, day); Date date = cal.getTime();
這種方式比較麻煩,需要將String類型分割成年、月、日的三個整數,然後使用Calendar的set方法轉換為Date類型。
二、string轉date的方法
除了上述幾種方法,還有一些其他的日期解析方式,下面我們一一介紹。
1. string轉date類型
使用DateTimeFormatter類的ofPattern方法,將String類型轉換為Date類型:
String strDate = "2020-01-01"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate localDate = LocalDate.parse(strDate, formatter); Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
這種方式將String類型日期解析為LocalDate類型,並且通過Date.from方法轉換為Date類型。這種方式是線程安全的,可以放心使用。
2. String轉換Date
使用Apache Commons Lang庫中的DateUtils.parseDate方法,將String類型轉換為Date類型:
String strDate = "2020-01-01"; Date date = DateUtils.parseDate(strDate, "yyyy-MM-dd");
這種方式簡單易用,但是需要導入Apache Commons Lang庫。
3. 如何將string轉為date
使用Java 8中新的日期和時間API,將String類型轉換為Date類型:
String strDate = "2020-01-01"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate localDate = LocalDate.parse(strDate, formatter); Date date = java.sql.Date.valueOf(localDate);
這種方式將String類型解析為LocalDate類型,然後通過java.sql.Date.valueOf方法將LocalDate類型轉換為Date類型。
三、總結
本文介紹了多種將String類型轉換為Date類型的方法,其中大部分方法都需要注意線程安全問題和格式要求,使用時需要特別注意。在實際開發中,我們需要根據自己的具體場景選擇最適合的方法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/290814.html