今天遇到了個問題,順便簡短的總結一下
是關於SDF的
也就是日期規範化simpledateformat
在本機上用的格式是
xxxx年xx月xx日
發送到服務器去拉去數據的是格式是
xxxxxxxx(年月日)
然後我寫了個DateUtil類
用於轉換兩者順便有一些別日期功能打算放裏面
private static SimpleDateFormat dateShowFormat = new SimpleDateFormat("YYYY年MM月dd日", Locale.getDefault());
private static SimpleDateFormat dateRequestFormat = new SimpleDateFormat("YYYYMMdd", Locale.getDefault());
先規定了兩個SDF,然後呢就寫轉換函數了,這個一會再上
我測試了一下 ,怎麼都是錯,日期明明是2019年9月多,轉換了以後就變成了2018年二月了,這就很難受了,後來才發現YYYY大寫了,改成yyyy就對了。。。尷尬。
下面貼出來我寫的轉換類,希望有所幫助。
public class DateUtil {
private static SimpleDateFormat dateShowFormat = new SimpleDateFormat("YYYY年MM月dd日", Locale.getDefault());
private static SimpleDateFormat dateRequestFormat = new SimpleDateFormat("YYYYMMdd", Locale.getDefault());
public static String show2request(String showFormat) {
try {
Date parse = dateShowFormat.parse(showFormat);
LogUtil.e(parse);
return dateRequestFormat.format(parse);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static String request2show(String requestFormat) {
try {
Date parse = dateRequestFormat.parse(requestFormat);
return dateShowFormat.format(parse);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static String getShowFormateString(Date date) {
return dateShowFormat.format(date);
}
public static String getRequestFormateString(Date date) {
return dateRequestFormat.format(date);
}
public static String getNowShowDate() {
return getShowFormateString(new Date());
}
}