Android——date格式化与解析问题

今天遇到了个问题,顺便简短的总结一下

是关于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());
    }
}

你可能感兴趣的:(android)