本網(wǎng)站記錄了最全的各種JavaDEMO ,保證下載,復制就是可用的,包括基礎(chǔ)的, 集合的, spring的, Mybatis的等等各種,助力你從菜鳥到大牛,記得收藏哦~~https://www.javastudy.cloud
時間與字符串之間的轉(zhuǎn)換
其關(guān)鍵就在于SimpleDateFormat這個類
/**
*? 這種寫法是開發(fā)中經(jīng)常用到的寫法,但卻不是jdk推薦的寫法, 下一個DEMO展示JDK推薦的寫
*? 法
* @Author https://www.javastudy.cloud
* @CreateTime 2019/11/02
**/public class DateDemo {? ? public static void main(String[] args) {// 這個類的精華就在于入?yún)?可以轉(zhuǎn)換不同的格式// 注意這個類不是線程安全的,切記不可多個線程共享同一個實例// 真要在多線程環(huán)境下使用可以使用 ThreadLocal存對應(yīng)線程的 FormatSimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");//字符串轉(zhuǎn)時間StringmyTimeStr? ="2019-11-01 08:19:03";? ? ? ? try {DatemyDate =format.parse(myTimeStr);System.out.println(myDate);? ? ? ? } catch (ParseException e) {? ? ? ? ? ? e.printStackTrace();? ? ? ? }//時間轉(zhuǎn)字符串DatecurrentDate =newDate();StringcurrentDateStr =format.format(currentDate);System.out.println(currentDateStr);? ? }}
運行結(jié)果:
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來設(shè)定格式format.applyPattern("yyyy-MM-dd HH:mm:ss");//字符串轉(zhuǎn)時間StringmyTimeStr? ="2019-11-01 08:19:03";? ? ? ? try {DatemyDate =format.parse(myTimeStr);System.out.println(myDate);? ? ? ? } catch (ParseException e) {? ? ? ? ? ? e.printStackTrace();? ? ? ? }//時間轉(zhuǎn)字符串DatecurrentDate =newDate();StringcurrentDateStr =format.format(currentDate);System.out.println(currentDateStr);? ? }}
常用的時間格式及輸出
節(jié)選字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
獲取常用的時間
這是一個靜態(tài)工具類,可以直接使用
/**
*
* 一些和時間相關(guān)的工具類
* @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;}/**
? ? * 獲取上個月結(jié)束的時間點
? ? * 2019-10-31 23:59:59
? ? * @return
*/publicstaticDatelastMonthEnd(){? ? ? ? Calendar calendar = Calendar.getInstance();//先獲取到這個月的第一天calendar.set(Calendar.DAY_OF_MONTH,1);? ? ? ? clearTimeForCalendar(calendar);//然后秒數(shù)減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();? ? }/**
? ? * 獲取這個月結(jié)束的時間
? ? * 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();? ? }/**
? ? * 獲取今天結(jié)束的時間
? ? * 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 總評
時間與字符串之間的轉(zhuǎn)換是開發(fā)中必不可少的技能, 有Calendar,Date,SimpleDateFormat等類的使用. 這塊建議封裝成工具類直接調(diào)用, 不用在代碼里面重復造輪子, 少年,加油吧!!