博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【JAVA】日期格式控制类
阅读量:6130 次
发布时间:2019-06-21

本文共 6485 字,大约阅读时间需要 21 分钟。

hot3.png

package com.util.date;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale;public class DateUtil {    private static final String[] CHINA_WEEKDAY = {"周日", "周一", "周二", "周三",            "周四", "周五", "周六"};    private static final String CHINA_YYYY_MM_DD = "yyyy年MM月dd日";    private static final String MM_DD_SPLASH = "MM/dd";    private static final int START_YEAR = 1900;    private static final String YYYY_MM_DD = "yyyy-MM-dd";    private static final String YYYY_MM_DD_SPLASH = "yyyy/MM/dd";    private static final String HH_MM_SS = "hh:mm:ss";    /**     * @param time     *            hh:mm     * @return hh时mm分     */    public static String changeHHMMtoChinaHHMM(String time) {        int colonIndex = time.indexOf(":");        String hour = time.substring(0, colonIndex);        String minus = time.substring(colonIndex + 1, time.length());        return hour + "时" + minus + "分";    }    /**     * 将YYYY-MM-DD 转化为 YYYY年MM月DD日     *      * @param yyyymmdd     *            YYYY-MM-DD     * @return 可能返回为空     */    public static String changeYYYYMMDDToChinaYYYYMMDD(String yyyymmdd) {        try {            return formatDateToChinaYYYYMMDD(formatYYYYMMDDToDate(yyyymmdd));        } catch (ParseException e) {            e.printStackTrace();        }        return null;    }    /**     * 格式化为Date型     *      * @param date     *            YYYY年MM月DD日     */    public static Date formatChinaYYYYMMDDToDate(String date)            throws ParseException {        return new SimpleDateFormat(CHINA_YYYY_MM_DD, Locale.CHINA).parse(date);    }    /**     * 格式化为"XXXX年XX月XX日"     */    public static String formatDateToChinaYYYYMMDD(Date date) {        return getYear(date) + "年" + (date.getMonth() + 1) + "月"                + date.getDate() + "日";    }    /**     * 格式化为"XX月XX日"     */    public static String formatDateToMMDD(Date date) {        return (date.getMonth() + 1) + "月" + date.getDate() + "日";    }    /**     * 格式化为"mm/dd"     */    public static String formatDateToMMDDSplash(Date date) {        return new SimpleDateFormat(MM_DD_SPLASH, Locale.CHINA).format(date);    }    /**     * 格式化为"yyyy-mm-dd"     */    public static String formatDateToYYYYMMDD(Date date) {        return new SimpleDateFormat(YYYY_MM_DD, Locale.CHINA).format(date);    }    /**     * 格式化为"yyyy/mm/dd"     */    public static String formatDateToYYYYMMDDSplash(Date date) {        return new SimpleDateFormat(YYYY_MM_DD_SPLASH, Locale.CHINA)                .format(date);    }    /**     * 格式化为Date型     *      * @param date     *            YYYY-MM-DD     */    public static Date formatYYYYMMDDToDate(String date) throws ParseException {        return new SimpleDateFormat(YYYY_MM_DD, Locale.CHINA).parse(date);    }    /**     * 将YYYY-MM-DD 格式化为"XX月XX日"     *      * @param date     * @return 可能返回为空     */    public static String formatYYYYMMDDToMMDD(String date) {        try {            return formatDateToMMDD(formatYYYYMMDDToDate(date));        } catch (ParseException e) {            e.printStackTrace();        }        return null;    }    /**     * 获取周几     *      * @param date     * @return 返回值为:未知,周一,周二,周三,周四,周五,周六,周日     */    public static String getChinaWeekDay(Date date) {        int weekday = getWeekDay(date);        return CHINA_WEEKDAY[weekday];    }    /**     * 获取周几     *      * @param date     * @return 返回值为:未知,周一,周二,周三,周四,周五,周六,周日     */    public static String getChinaWeekDay(String date) {        int weekday = getWeekDay(date);        return CHINA_WEEKDAY[weekday];    }    /**     * 获取年份     *      * @param date     *            yyyy-mm-dd     * @return 返回值为:XXXX年     */    public static String getChinaYear(String date) {        return getYear(date) + "年";    }    /**     * 获得指定日期的间隔后的日期     *      * @param date     * @param days     *            间隔天数。 >0,表示后面的日期 <0,表示前面的日期     */    public static Date getDayAfter(Date date, int days) {        Calendar c = Calendar.getInstance();        c.setTime(date);        int day = c.get(Calendar.DATE);        c.set(Calendar.DATE, day + days);        return c.getTime();    }    /**     * 获得指定日期的间隔后的日期     *      * @param date     *            yyyy-mm-dd     * @param days     *            间隔天数。 >0,表示后面的日期 <0,表示前面的日期     */    public static Date getDayAfter(String date, int days) {        try {            return getDayAfter(formatYYYYMMDDToDate(date), days);        } catch (ParseException e) {            e.printStackTrace();        }        return null;    }    /**     * 获取两个日期之间的天数     *      * @param startDate     *            yyyy-mm-dd     * @param endDate     *            yyyy-mm-dd     * @return     */    public static int getDaysBetween(String startDate, String endDate) {        int len = 0;        try {            SimpleDateFormat df = new SimpleDateFormat(YYYY_MM_DD, Locale.CHINA);            java.util.Date cDate;            cDate = df.parse(startDate);            java.util.Date dDate = df.parse(endDate);            long betweenDate = (dDate.getTime() - cDate.getTime())                    / (24 * 60 * 60 * 1000);            len = (int) betweenDate;        } catch (ParseException e) {            e.printStackTrace();        }        return len;    }    /**     * 获取星期几     *      * @param date     *            yyyy-mm-dd     * @return 返回值为:1,2,3,4,5,6,7. 出错返回0     */    public static int getWeekDay(Date date) {        return date.getDay() /* + 1 */;    }    /**     * 获取星期几     *      * @param date     *            yyyy-mm-dd     * @return 返回值为:1,2,3,4,5,6,7. 出错返回0     */    public static int getWeekDay(String date) {        try {            return getWeekDay(formatYYYYMMDDToDate(date));        } catch (ParseException e) {            e.printStackTrace();        }        return 0;    }    /**     * 获取年份     *      * @param date     * @return XXXX     */    public static int getYear(Date date) {        return date.getYear() + START_YEAR;    }    /**     * 获取年份     *      * @param date     *            yyyy-mm-dd     * @return XXXX     */    public static int getYear(String date) {        try {            return getYear(formatYYYYMMDDToDate(date));        } catch (ParseException e) {            e.printStackTrace();        }        return START_YEAR;    }    public static String formatDateToYYYYMMDDHHMMSS(Date date) {        return new SimpleDateFormat(YYYY_MM_DD + " " + HH_MM_SS, Locale.CHINA)                .format(date);    }}

转载于:https://my.oschina.net/u/2273965/blog/368199

你可能感兴趣的文章
60.使用Azure AI 自定义视觉服务实现物品识别Demo
查看>>
Oracle 冷备份
查看>>
jq漂亮实用的select,select选中后,显示对应内容
查看>>
C 函数sscanf()的用法
查看>>
python模块之hashlib: md5和sha算法
查看>>
linux系统安装的引导镜像制作流程分享
查看>>
解决ros建***能登录不能访问内网远程桌面的问题
查看>>
pfsense锁住自己
查看>>
vsftpd 相关总结
查看>>
bash complete -C command
查看>>
解决zabbix 3.0中1151端口不能运行问题
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>
Get到的优秀博客网址
查看>>
dubbo
查看>>
【Git入门之四】操作项目
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>
高利率时代的结局,任重道远,前途叵测
查看>>
Debian 6.05安装后乱码
查看>>