java基礎(chǔ)|java中時間與字符串之間的轉(zhuǎn)換及獲取常用時間

本網(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)用, 不用在代碼里面重復造輪子, 少年,加油吧!!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容