excel中的日期为下图所示,利用io读取到后,调试发现值为“12.10.2019”,需要将其转换为“2019-10-12”
用split方法以.号切割时,需要用转移字符“\\.”,代码如下
1 package com.alphajuns.test; 2 3 import org.junit.Test; 4 5 /** 6 * @ClassName SplitMethodTest 7 * @Description 8 * @Author AlphaJunS 9 * @Date 2019/10/31 21:49 10 * @Version V1.0 11 **/ 12 public class SplitMethodTest { 13 14 @Test 15 public void test() { 16 // excel中日期为2019/10/12,利用io流读入获取为"12.10.2019" 17 String str = "12.10.2019"; 18 System.out.println("转换前:" + str); 19 // 以.号进行切割,需要使用转译字符 20 String[] strArray = split(str); 21 String[] strArr = arrayReverse(strArray); 22 String dateStr = convertStrArrayToDateStr(strArr); 23 System.out.println("转换后的日期字符串:" + dateStr); 24 } 25 26 /** 27 * @description 切割字符串 28 * @author AlphaJunS 29 * @date 2019/10/31 30 * @param [str] 31 * @return void 32 */ 33 private String[] split(String str) { 34 String[] split = str.split("\\."); 35 return split; 36 } 37 38 /** 39 * @description 字符串数组倒序 40 * @author AlphaJunS 41 * @date 2019/10/31 42 * @param [strArray] 43 * @return java.lang.String[] 44 */ 45 public String[] arrayReverse(String[] strArray) { 46 int length = strArray.length; 47 String temp = ""; 48 // 倒序 49 for (int i = 0; i < length/2; i++) { 50 temp = strArray[i]; 51 strArray[i] = strArray[length - 1 - i]; 52 strArray[length - 1 - i] = temp; 53 } 54 return strArray; 55 } 56 57 /** 58 * @description 字符串数组转日期字符串 59 * @author AlphaJunS 60 * @date 2019/10/31 61 * @param [strArr] 62 * @return java.lang.String 63 */ 64 private String convertStrArrayToDateStr(String[] strArr) { 65 String dateStr = ""; 66 int length = strArr.length; 67 for (int i = 0; i < length; i++) { 68 if (i != (length - 1)) { 69 dateStr += strArr[i] + "-"; 70 } else { 71 dateStr += strArr[i]; 72 } 73 } 74 return dateStr; 75 } 76 }
结果如下:
若还要将字符串日期转换为日期,可用如下代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = sdf.parse(dateStr); System.out.println("日期:" + date); } catch (ParseException e) { e.printStackTrace(); }