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());
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章