今天遇到了个问题,顺便简短的总结一下
是关于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());
}
}