如何将Java的日期的不同格式转换成统一格式,比如20150526,2015-5-26,2015/5/26.
因为数据库日期太乱了,有的是20150526有的是2015-5-6,现在需要将他们转为统一格式比如20150526.求大神帮助。
public static void main(String[] args) {
String[] arr = new String[]{"2015年1月1日","2015-1-1","2015/1/1","2015/01/1"};
for(int i=0;i<arr.length;i++){
String[] arrSplit = arr[i].split("[-|年|/|月|日]");//在这里加分割字符
arr[i] = "";
for(int j=0;j<arrSplit.length;j++){
if(arrSplit[j].length()<2){
arrSplit[j] = "0"+arrSplit[j];
}
arr[i]=arr[i]+arrSplit[j];
}
System.out.println(arr[i]);
}
}
没有方法,统一转换,自己考虑各种情况,写个方法就行了,或者用正则,把里面不是数字的都干掉
字符串处理:使用split()函数进行分割,月份或日期为各位数字前补0,最后再拼接即可。
首先分情况判断,然后再套用不同的方式解析。无非也就那么几种。
没有统一的方法,用dateformat,每种情况得区分处理
那只能写个util的工具类,里面加个方法,将日期传进去。在这个方法里面判断格式,再调用不同的转换方法。如果以后日期格式又有新格式,补充util类
试试SimpleDateFormat类,或者jodatime库
java的中可以 String str = new String.format(const char *format, ...);
//而且 java中的String 变量可以用+的方法来拼接
DateFormat YMDALL = new SimpleDateFormat("yyyyMMdd");
sysout(YMDALL.format(new Date()));
方法很多了;简洁点的话可以用正则+JAVA提供的时间format工具
楼主自己写个日期转换的工具类就可以了,想要什么格式用正则表达式来匹配就好了