java基础|java中时间与字符串之间的转换及获取常用时间

本网站记录了最全的各种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存对应线程的 FormatSimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");//字符串转时间StringmyTimeStr  ="2019-11-01 08:19:03";        try {DatemyDate =format.parse(myTimeStr);System.out.println(myDate);        } catch (ParseException e) {            e.printStackTrace();        }//时间转字符串DatecurrentDate =newDate();StringcurrentDateStr =format.format(currentDate);System.out.println(currentDateStr);    }}

运行结果:

jdk推荐的写法:

/**

* @Author https://www.javastudy.cloud

* @CreateTime 2019/11/02

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

常用的时间格式及输出

节选字JDK,SimpleDateFormat源码

yyyy.MM.dd G'at'HH:mm:ss z2001.07.04AD at12:08:56PDT    EEE, MMM d,''yyWed, Jul4,'01


h:mm a

12:08 PM


hh 'o''clock' a, zzzz12o'clock PM, Pacific Daylight Time    K:mm a, z0:08PM, PDT    yyyyy.MMMMM.dd GGG hh:mm aaa02001.July.04AD12:08PM    EEE, d MMM yyyy HH:mm:ss ZWed,4Jul200112:08:56-0700yyMMddHHmmssZ010704120856-0700yyyy-MM-dd'T'HH:mm:ss.SSSZ2001-07-04T12:08:56.235-0700yyyy-MM-dd'T'HH:mm:ss.SSSXXX2001-07-04T12:08:56.235-07:00YYYY-'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

*/publicstaticDatelastMonthEnd(){        Calendar calendar = Calendar.getInstance();//先获取到这个月的第一天calendar.set(Calendar.DAY_OF_MONTH,1);        clearTimeForCalendar(calendar);//然后秒数减1就是上个月最后一刻了calendar.add(Calendar.SECOND,-1);returncalendar.getTime();    }/**

    * 获取这个月开始的时间

    * 2019-11-01 00:00:00

    * @return

    */publicstaticDatethisMonthBegin(){        Calendar calendar = Calendar.getInstance();//先获取到这个月的第一天calendar.set(Calendar.DAY_OF_MONTH,1);        clearTimeForCalendar(calendar);returncalendar.getTime();    }/**

    * 获取这个月结束的时间

    * 2019-11-30 23:59:59

    * @return

    */publicstaticDatethisMonthEnd(){        Calendar calendar = Calendar.getInstance();//先获取到这个月的第一天calendar.set(Calendar.DAY_OF_MONTH,1);        calendar.add(Calendar.MONTH,1);        clearTimeForCalendar(calendar);        calendar.add(Calendar.SECOND,-1);returncalendar.getTime();    }/**

    * 获取今天开始的时间

    * 2019-11-02 00:00:00

    * @return

    */publicstaticDatethisDayBegin(){        Calendar calendar = Calendar.getInstance();        clearTimeForCalendar(calendar);returncalendar.getTime();    }/**

    * 获取今天结束的时间

    * 2019-11-02 23:59:59

    * @return

    */publicstaticDatethisDayEnd(){        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.DAY_OF_MONTH,1);        clearTimeForCalendar(calendar);        calendar.add(Calendar.SECOND,-1);returncalendar.getTime();    }/**

    * 把date里面的时分秒给清空

    * @param date

    * @return

    */publicstaticDateclearTimeForDate(Date date){        Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        clearTimeForCalendar(calendar);returncalendar.getTime();    }/**

    * 把Calendar时间里面的时分秒给清空

    * @param calendar

    */publicstaticvoidclearTimeForCalendar(Calendar calendar){        calendar.set(Calendar.HOUR_OF_DAY,0);        calendar.set(Calendar.MINUTE,0);        calendar.set(Calendar.SECOND,0);    }    }

DEMO 总评

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

你可能感兴趣的:(java基础|java中时间与字符串之间的转换及获取常用时间)