如何在Java中對(duì)時(shí)間日期進(jìn)行處理?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
從策劃到設(shè)計(jì)制作,每一步都追求做到細(xì)膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、國(guó)際域名空間、虛擬主機(jī)、網(wǎng)絡(luò)營(yíng)銷(xiāo)、VI設(shè)計(jì)、 網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進(jìn)步。時(shí)間的基礎(chǔ)知識(shí)
時(shí)區(qū):整個(gè)地球分為二十四時(shí)區(qū),每個(gè)時(shí)區(qū)都有自己的本地時(shí)間。
為了統(tǒng)一起見(jiàn),使用一個(gè)統(tǒng)一的時(shí)間,稱(chēng)為全球標(biāo)準(zhǔn)時(shí)間(UTC,Universal Time Coordinated)。
TC與格林尼治平均時(shí)(GMT,Greenwich Mean Time,也翻譯成:格林威治標(biāo)準(zhǔn)時(shí)間)差不多一樣
CST(北京時(shí)間),北京時(shí)間,China standard Time,中國(guó)標(biāo)準(zhǔn)時(shí)間。在時(shí)區(qū)劃分上,屬東八區(qū),比協(xié)調(diào)世界時(shí)早8小時(shí),記為UTC+8。
時(shí)間戳:自1970年1月1日(08:00:00GMT)至當(dāng)前時(shí)間的總秒數(shù),它也被稱(chēng)為Unix時(shí)間戳(unix Timestamp),廣泛的運(yùn)用在知識(shí)產(chǎn)權(quán)保護(hù)、合同簽字、金融帳務(wù)、電子報(bào)價(jià)投標(biāo)、股票交易等方面
格式多種:2050-10-3110:11:11、2050/10/3110/10:10年、月、日、周幾等
背景:程序代碼中怎么表示時(shí)間呢?我需要獲取當(dāng)前時(shí)間怎么辦
ava.util包提供了Date類(lèi)來(lái)封裝當(dāng)前的日期和時(shí)間
構(gòu)造函數(shù)
//當(dāng)前時(shí)間 Date() //從1970年1月1日起的毫秒數(shù)作為參數(shù) Date(long millisec)
常見(jiàn)方法
//返回自1970年1月1日00:00:00GMT以來(lái)此Date對(duì)象表示的毫秒數(shù)。 long getTime() //調(diào)用此方法的Date對(duì)象在指定日期之后返回true,否則返回false。 boolean after(Date date) //調(diào)用此方法的Date對(duì)象在指定日期之前返回true,否則返回false。 boolean before(Date date)
Java8通過(guò)發(fā)布新的Date-Time API(JSR310)來(lái)進(jìn)一步加強(qiáng)對(duì)日期與時(shí)間的處理
新增了很多常見(jiàn)的api,如日期/時(shí)間的比較,加減,格式化等
包所在位置 java.time
核心類(lèi)
LocalDate:不包含具體時(shí)間的日期。
LocalTime:不含日期的時(shí)間。
LocalDateTime:包含了日期及時(shí)間。
LocalDate常用API
LocalDate today=LocalDate.now(); system.out.print1n("今天日期:"+today); //獲取年,月,日,周幾 system.out.print1n("現(xiàn)在是哪年:"+today.getYear()); system.out.print1n("現(xiàn)在是哪月:"+today.getMonth()); System.out.print1n("現(xiàn)在是哪月(數(shù)字):"+today.getMonthValue()); System.out.print1n("現(xiàn)在是幾號(hào):"+today.getDayofMonth()); system.out.print1n("現(xiàn)在是周幾:"+today.getDayofweek()); //加減年份,加后返回的對(duì)象才是修改后的,舊的依舊是舊的LocalDate changeDate=today.plusYears(1); system.out.print1n("加后是哪年:"+changeDate.getYear()); System.out.print1n("舊的是哪年:"+today.getYear()); //日期比較 system.out.print1n("isafter:"+changeDate.isAfter(today)); //getYear()int 獲取當(dāng)前日期的年份 //getMonth()Month獲取當(dāng)前日期的月份對(duì)象 //getMonthValue()int 獲取當(dāng)前日期是第幾月 //getDayofweek()Dayofweek 表示該對(duì)象表示的日期是星期幾 //getDayofMonth()int 表示該對(duì)象表示的日期是這個(gè)月第幾天 //getDayofyear()int 表示該對(duì)象表示的日期是今年第幾天 //withyear(int year)LocalDate 修改當(dāng)前對(duì)象的年份 //withMonth(int month)LocalDate修改當(dāng)前對(duì)象的月份 //withpayofMonth(int dayofMonth)LocalDate 修改當(dāng)前對(duì)象在當(dāng)月的日期 //plusYears(long yearsToAdd)Localpate 當(dāng)前對(duì)象增加指定的年份數(shù) //plusMonths(1ong monthsToAdd)LocalDate 當(dāng)前對(duì)象增加指定的月份數(shù) //plusweeks(1ong weeksToAdd)LocalDate 當(dāng)前對(duì)象增加指定的周數(shù) //plusDays(1ong daysToAdd)LocalDate 當(dāng)前對(duì)象增加指定的天數(shù) //minusYears(long yearsTosubtract)LocalDate 當(dāng)前對(duì)象減去指定的年數(shù) //minusMonths(1ong months ToSubtract)LocalDate當(dāng)前對(duì)象減去注定的月數(shù) //minusWeeks(long weeksTosubtract)LocalDate 當(dāng)前對(duì)象減去指定的周數(shù) //minusDays(1ong daysTosubtract)LocalDate當(dāng)前對(duì)象減去指定的天數(shù) //compareTo(ChronoLocalDate other)int 比較當(dāng)前對(duì)象和other對(duì)象在時(shí)間上的大小,返回值如果為正,則當(dāng)前對(duì)象時(shí)間較晚 //isBefore(ChronoLocalDate other)boolean比較當(dāng)前對(duì)象日期是否在other對(duì)象日期之前 //isAfter(ChronoLocalDate other)boolean 比較當(dāng)前對(duì)象日期是否在other對(duì)象日期之后 //isEqual(ChronoLocalDate other)boolean 比較兩個(gè)日期對(duì)象是否相等
為什么要時(shí)間日期做格式化
程序打印,或者網(wǎng)頁(yè)顯示時(shí)間日期格式,用戶有不同的需求,則需要根據(jù)一定的規(guī)則進(jìn)行格式化
常用的占位符
y四位數(shù)年份
M月d日
h時(shí)在
m分
S毫秒
JDK8之后:引入線程安全的日期與時(shí)
LocalDateTime ldt = LocalDateTime.now(); System.out.println(ldt); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String ldtStr = dtf.format(ldt); System.out.println(ldtStr);
獲取指定的日期時(shí)間對(duì)象LocalDate Time ldt=LocalDate Time.of(2020,11,11,8,20,30);System.out.println(ldt);
計(jì)算日期時(shí)間差 java.time.Duration
LocalDateTime today = LocalDateTime.now(); System.out.println(today); LocalDateTime changeDate = LocalDateTime.of(2020,10,1,10,40,30); System.out.println(changeDate); Duration duration = Duration.between( today,changeDate);//第?二個(gè)參數(shù)減第?一 個(gè)參數(shù) System.out.println(duration.toDays());//兩個(gè)時(shí)間差的天數(shù) System.out.println(duration.toHours());//兩個(gè)時(shí)間差的小時(shí)數(shù) System.out.println(duration.toMinutes());//兩個(gè)時(shí)間差的分鐘數(shù) System.out.println(duration.toMillis());//兩個(gè)時(shí)間差的毫秒數(shù) System.out.println(duration.toNanos());//兩個(gè)時(shí)間差的納秒數(shù)
關(guān)于如何在Java中對(duì)時(shí)間日期進(jìn)行處理問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
當(dāng)前文章:如何在Java中對(duì)時(shí)間日期進(jìn)行處理-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://bm7419.com/article22/ihhcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、定制網(wǎng)站、網(wǎng)站內(nèi)鏈、移動(dòng)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容