本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~https://www.javastudy.cloud

时间与字符串之间的转换

其关键就在于SimpleDateFormat这个类

/** *  这种写法是开发中经常用到的写法,但却不是jdk推荐的写法, 下一个DEMO展示JDK推荐的写 *  法 * @Author https://www.javastudy.cloud * @CreateTime 2019/11/02 **/public class DateDemo {    public static void main(String[] args) {        // 这个类的精华就在于入参,可以转换不同的格式        // 注意这个类不是线程安全的,切记不可多个线程共享同一个实例        // 真要在多线程环境下使用可以使用 ThreadLocal存对应线程的 Format        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        //字符串转时间        String myTimeStr  = "2019-11-01 08:19:03";        try {            Date myDate = format.parse(myTimeStr);            System.out.println(myDate);        } catch (ParseException e) {            e.printStackTrace();        }        //时间转字符串        Date currentDate = new Date();        String currentDateStr = format.format(currentDate);        System.out.println(currentDateStr);    }}
/**
 *  这种写法是开发中经常用到的写法,但却不是jdk推荐的写法, 下一个DEMO展示JDK推荐的写
 *  法
 * @Author https://www.javastudy.cloud
 * @CreateTime 2019/11/02
 **/
public class DateDemo {


    public static void main(String[] args) {
        // 这个类的精华就在于入参,可以转换不同的格式
        // 注意这个类不是线程安全的,切记不可多个线程共享同一个实例
        // 真要在多线程环境下使用可以使用 ThreadLocal存对应线程的 Format
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        //字符串转时间
        String myTimeStr  = "2019-11-01 08:19:03";
        try {
            Date myDate = format.parse(myTimeStr);
            System.out.println(myDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        //时间转字符串
        Date currentDate = new Date();
        String currentDateStr = format.format(currentDate);
        System.out.println(currentDateStr);

    }
}




运行结果:

Java时间字符串传时间戳 字符串转时间戳java_java 获取字符串长度

jdk推荐的写法:

/** * @Author https://www.javastudy.cloud * @CreateTime 2019/11/02 **/public class DateDemo {    public static void main(String[] args) {        // 与上一个DEMO不一样的是初始化        // 一个是直接NEW,一个是用工厂的方式去获取        SimpleDateFormat format = (SimpleDateFormat) SimpleDateFormat.getDateTimeInstance();// 通过applyPattern来设定格式        format.applyPattern("yyyy-MM-dd HH:mm:ss");        //字符串转时间        String myTimeStr  = "2019-11-01 08:19:03";        try {            Date myDate = format.parse(myTimeStr);            System.out.println(myDate);        } catch (ParseException e) {            e.printStackTrace();        }        //时间转字符串        Date currentDate = new Date();        String currentDateStr = format.format(currentDate);        System.out.println(currentDateStr);    }}
/**
 * @Author https://www.javastudy.cloud
 * @CreateTime 2019/11/02
 **/
public class DateDemo {

    public static void main(String[] args) {

        // 与上一个DEMO不一样的是初始化
        // 一个是直接NEW,一个是用工厂的方式去获取
        SimpleDateFormat format = (SimpleDateFormat) SimpleDateFormat.getDateTimeInstance();
// 通过applyPattern来设定格式
        format.applyPattern("yyyy-MM-dd HH:mm:ss");

        //字符串转时间
        String myTimeStr  = "2019-11-01 08:19:03";
        try {
            Date myDate = format.parse(myTimeStr);
            System.out.println(myDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        //时间转字符串
        Date currentDate = new Date();
        String currentDateStr = format.format(currentDate);
        System.out.println(currentDateStr);

    }
}




常用的时间格式及输出

节选字JDK,SimpleDateFormat源码

yyyy.MM.dd G 'at' HH:mm:ss z2001.07.04 AD at 12:08:56 PDT    EEE, MMM d, ''yyWed, Jul 4, '01    h:mm a12:08 PM    hh 'o''clock' a, zzzz12 o'clock PM, Pacific Daylight Time    K:mm a, z0:08 PM, PDT    yyyyy.MMMMM.dd GGG hh:mm aaa02001.July.04 AD 12:08 PM    EEE, d MMM yyyy HH:mm:ss ZWed, 4 Jul 2001 12:08:56 -0700    yyMMddHHmmssZ010704120856-0700    yyyy-MM-dd'T'HH:mm:ss.SSSZ2001-07-04T12:08:56.235-0700    yyyy-MM-dd'T'HH:mm:ss.SSSXXX2001-07-04T12:08:56.235-07:00    YYYY-'W'ww-u2001-W27-3

获取常用的时间

这是一个静态工具类,可以直接使用

/** * * 一些和时间相关的工具类 * @Author https://www.javastudy.cloud * 公众号: 程序员学习大本营 * @CreateTime 2019/11/2 **/public class DateTools {    /**     * 获取上个月开始的时间     * 2019-10-01 00:00:00     * @return     */    public static Date lastMonthBegin(){        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.MONTH,-1);        calendar.set(Calendar.DAY_OF_MONTH, 1);        clearTimeForCalendar(calendar);        Date time = calendar.getTime();        return time;    }    /**     * 获取 1970-01-01 00:00:00 这个时间点     * @return     */    public static Date earlyDate(){        Calendar calendar = Calendar.getInstance();        calendar.set(Calendar.YEAR,1970);        calendar.set(Calendar.MONTH,1);        calendar.set(Calendar.DAY_OF_MONTH, 1);        clearTimeForCalendar(calendar);        Date time = calendar.getTime();        return time;    }    /**     * 获取上个月结束的时间点     * 2019-10-31 23:59:59     * @return
/**
 *
 * 一些和时间相关的工具类
 * @Author https://www.javastudy.cloud
 * 公众号: 程序员学习大本营
 * @CreateTime 2019/11/2
 **/
public class DateTools {

    /**
     * 获取上个月开始的时间
     * 2019-10-01 00:00:00
     * @return
     */
    public static Date lastMonthBegin(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.MONTH,-1);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        clearTimeForCalendar(calendar);
        Date time = calendar.getTime();
        return time;
    }

    /**
     * 获取 1970-01-01 00:00:00 这个时间点
     * @return
     */
    public static Date earlyDate(){
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR,1970);
        calendar.set(Calendar.MONTH,1);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        clearTimeForCalendar(calendar);
        Date time = calendar.getTime();
        return time;
    }

    /**
     * 获取上个月结束的时间点
     * 2019-10-31 23:59:59
     * @return




*/    public static Date lastMonthEnd(){        Calendar calendar = Calendar.getInstance();        //先获取到这个月的第一天        calendar.set(Calendar.DAY_OF_MONTH, 1);        clearTimeForCalendar(calendar);        //然后秒数减1就是上个月最后一刻了        calendar.add(Calendar.SECOND, -1);        return calendar.getTime();    }    /**     * 获取这个月开始的时间     * 2019-11-01 00:00:00     * @return     */    public static Date thisMonthBegin(){        Calendar calendar = Calendar.getInstance();        //先获取到这个月的第一天        calendar.set(Calendar.DAY_OF_MONTH, 1);        clearTimeForCalendar(calendar);        return calendar.getTime();    }    /**     * 获取这个月结束的时间     * 2019-11-30 23:59:59     * @return     */    public static Date thisMonthEnd(){        Calendar calendar = Calendar.getInstance();        //先获取到这个月的第一天        calendar.set(Calendar.DAY_OF_MONTH, 1);        calendar.add(Calendar.MONTH,1);        clearTimeForCalendar(calendar);        calendar.add(Calendar.SECOND, -1);        return calendar.getTime();    }    /**     * 获取今天开始的时间     * 2019-11-02 00:00:00     * @return     */    public static Date thisDayBegin(){        Calendar calendar = Calendar.getInstance();        clearTimeForCalendar(calendar);        return calendar.getTime();    }    /**     * 获取今天结束的时间     * 2019-11-02 23:59:59     * @return     */    public static Date thisDayEnd(){        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.DAY_OF_MONTH,1);        clearTimeForCalendar(calendar);        calendar.add(Calendar.SECOND, -1);        return calendar.getTime();    }    /**     * 把date里面的时分秒给清空     * @param date     * @return     */    public static Date clearTimeForDate(Date date){        Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        clearTimeForCalendar(calendar);        return calendar.getTime();    }    /**     * 把Calendar时间里面的时分秒给清空     * @param calendar     */    public static void clearTimeForCalendar(Calendar calendar){        calendar.set(Calendar.HOUR_OF_DAY,0);        calendar.set(Calendar.MINUTE,0);        calendar.set(Calendar.SECOND,0);    }    }
     */
    public static Date lastMonthEnd(){
        Calendar calendar = Calendar.getInstance();
        //先获取到这个月的第一天
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        clearTimeForCalendar(calendar);
        //然后秒数减1就是上个月最后一刻了
        calendar.add(Calendar.SECOND, -1);
        return calendar.getTime();
    }

    /**
     * 获取这个月开始的时间
     * 2019-11-01 00:00:00
     * @return
     */
    public static Date thisMonthBegin(){
        Calendar calendar = Calendar.getInstance();
        //先获取到这个月的第一天
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        clearTimeForCalendar(calendar);
        return calendar.getTime();
    }

    /**
     * 获取这个月结束的时间
     * 2019-11-30 23:59:59
     * @return
     */
    public static Date thisMonthEnd(){
        Calendar calendar = Calendar.getInstance();
        //先获取到这个月的第一天
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.add(Calendar.MONTH,1);
        clearTimeForCalendar(calendar);
        calendar.add(Calendar.SECOND, -1);
        return calendar.getTime();
    }

    /**
     * 获取今天开始的时间
     * 2019-11-02 00:00:00
     * @return
     */
    public static Date thisDayBegin(){
        Calendar calendar = Calendar.getInstance();
        clearTimeForCalendar(calendar);
        return calendar.getTime();
    }

    /**
     * 获取今天结束的时间
     * 2019-11-02 23:59:59
     * @return
     */
    public static Date thisDayEnd(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DAY_OF_MONTH,1);
        clearTimeForCalendar(calendar);
        calendar.add(Calendar.SECOND, -1);
        return calendar.getTime();
    }

    /**
     * 把date里面的时分秒给清空
     * @param date
     * @return
     */
    public static Date clearTimeForDate(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        clearTimeForCalendar(calendar);
        return calendar.getTime();
    }

    /**
     * 把Calendar时间里面的时分秒给清空
     * @param calendar
     */
    public static void clearTimeForCalendar(Calendar calendar){
        calendar.set(Calendar.HOUR_OF_DAY,0);
        calendar.set(Calendar.MINUTE,0);
        calendar.set(Calendar.SECOND,0);
    }
    
}




DEMO 总评时间与字符串之间的转换是开发中必不可少的技能, 有Calendar,Date,SimpleDateFormat等类的使用. 这块建议封装成工具类直接调用, 不用在代码里面重复造轮子, 少年,加油吧!!