Java中YYYY-MM-dd與yyyy-MM-dd的區(qū)別及跨年問(wèn)題
大寫(xiě)YYYY的用途
大寫(xiě)的YYYY通常用于表示“周年”,在某些編程語(yǔ)言或者數(shù)據(jù)格式中,比如ISO 8601日期格式中,YYYY可能代表的是所在周屬于的年份。這意味著,如果一周跨越了兩個(gè)不同的年份,該周會(huì)被歸屬到哪一年取決于這周中的大部分日子屬于哪一年。
小寫(xiě)yyyy的用途
小寫(xiě)的yyyy則是更常見(jiàn)的表示方法,用于表示“日歷年”。無(wú)論日期所在的周是否跨年,yyyy總是代表實(shí)際的年份。
實(shí)際影響
在大多數(shù)情況下,人們使用yyyy-MM-dd格式,因?yàn)樗先粘I钪袑?duì)日期的理解和使用。而在一些需要按周計(jì)算時(shí)間的場(chǎng)合,可能會(huì)用到YYYY格式,尤其是在財(cái)務(wù)報(bào)告或者具有特定周計(jì)算需求的行業(yè)中。
樣例
public class DateFormatExample {
public static void main(String[] args) {
// 使用Calendar獲取一個(gè)日期實(shí)例
Calendar calendar = Calendar.getInstance();
// 假設(shè)日期是2023年12月31日
calendar.set(2023, Calendar.DECEMBER, 31);
// 使用YYYY格式化日期
SimpleDateFormat formatWithYYYY = new SimpleDateFormat("YYYY-MM-dd");
String dateWithYYYY = formatWithYYYY.format(calendar.getTime());
System.out.println("Date with YYYY: " + dateWithYYYY);
// 輸出的是2024-12-31,因?yàn)?2月31日屬于第1周,而該周屬于下一年
// 使用yyyy格式化日期
SimpleDateFormat formatWithyyyy = new SimpleDateFormat("yyyy-MM-dd");
String dateWithyyyy = formatWithyyyy.format(calendar.getTime());
System.out.println("Date with yyyy: " + dateWithyyyy);
// 輸出2023-12-31
}
}結(jié)論
YYYY-MM-dd可能會(huì)導(dǎo)致跨年周的日期被歸屬到錯(cuò)誤的年份。yyyy-MM-dd總是表示實(shí)際的日歷年份,無(wú)論日期所在的周是否跨年。- 在編寫(xiě)代碼或者設(shè)置日期格式時(shí),需要根據(jù)實(shí)際需求選擇合適的年份表示方法。
如果使用日期格式不當(dāng),可能會(huì)在數(shù)據(jù)處理、日志記錄或者時(shí)間計(jì)算等方面造成混淆和錯(cuò)誤。因此,在處理日期和時(shí)間時(shí),了解并正確使用這些日期格式是非常重要的。
補(bǔ)充
常用格式為:yyyy-MM-dd HH:mm:ss
以 2019-12-31 06:07:59:666 時(shí)間為例:
字符 | 含義 | Example |
y(小寫(xiě)的y) | 年 | yyyy---->2019 |
M(大寫(xiě)的M) | 月 | MM---->12 |
d(小寫(xiě)的d) | 一月中的天數(shù) | dd---->31 |
H(24 小時(shí)制,大寫(xiě)的H) | 小時(shí)(0-23) | HH---->18 |
h(12 小時(shí)制,小寫(xiě)的h) | 小時(shí)(1-12) | hh---->06 |
m(小寫(xiě)的m) | 分 | mm---->07 |
s(小寫(xiě)的s) | 秒 | ss---->59 |
S(大寫(xiě)的S) | 毫秒 | SSS---->666 |
Y(大寫(xiě)的y) | Week Year | YYYY---->2020 |
D(大寫(xiě)的D) | 一年中天數(shù) | DD---->365 |
yyyy-MM-dd與YYYY-MM-dd區(qū)別在哪里?
Y 代表 Week Year,表示當(dāng)天周所在的年份。這種方式將會(huì)把一年劃分成52 周/53周(類(lèi)似于閏年的概念,每隔幾年將會(huì)增加一周)。Week Year下每周僅屬于某一年,如果某年的第一周或最后一周跨年,就會(huì)導(dǎo)致部分日期年份與實(shí)際不符。
oracle和java的日期格式的差異
java中的的日期格式為:
yyyy-MM-dd HH:mm:ss:代表將時(shí)間轉(zhuǎn)換為24小時(shí)制,例: 2020-01-07 13:21:55
yyyy-MM-dd hh:mm:ss:代表將時(shí)間轉(zhuǎn)換為12小時(shí)制,例: 2020-01-07 03:24:21
oracle中的日期格式為(不區(qū)分大小寫(xiě)):
yyyy-MM-dd HH24:mi:ss:代表oracle中的24小時(shí)制,例:2020/1/7 13:21:55
yyyy-MM-dd HH:mi:ss: 代表oracle中的12小時(shí)制,例:2020/1/7 9:21:55
之所以 oracle和java不同,是因?yàn)槲覀冎纎racle是不區(qū)分大小寫(xiě)的,所以java中根據(jù)大小寫(xiě)來(lái)代表24小時(shí)和12小時(shí)的表達(dá)式在oracle中就會(huì)出問(wèn)題,oracle中將24小時(shí)的時(shí)和分做了特殊處理.如上所示,在hh后面加上了24,將mm改為了mi.
到此這篇關(guān)于Java中YYYY-MM-dd與yyyy-MM-dd的區(qū)別及跨年問(wèn)題的文章就介紹到這了,更多相關(guān)Java YYYY-MM-dd與yyyy-MM-dd內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows安裝兩個(gè)或多個(gè)JDK并實(shí)現(xiàn)自由切換的方法
最近新接手一個(gè)項(xiàng)目,啟動(dòng)的時(shí)候,發(fā)現(xiàn)有些jar和現(xiàn)在正在使用的JDK版本不一致,一直啟動(dòng)有問(wèn)題,想著就多裝一個(gè)JDK,由于為了保證java的運(yùn)行環(huán)境和編譯環(huán)境保持一致,就需要我們?cè)O(shè)置jdk的環(huán)境變量,所以本文給大家介紹了Windows安裝兩個(gè)或多個(gè)JDK并實(shí)現(xiàn)自由切換的方法2025-03-03
使用SpringBoot中的Schedule定時(shí)發(fā)送郵件的方法
在SpringBoot中,你可以使用@Scheduled注解來(lái)創(chuàng)建定時(shí)任務(wù),@Scheduled注解可以應(yīng)用于方法上,表示這個(gè)方法是一個(gè)定時(shí)任務(wù),可以根據(jù)指定的時(shí)間間隔或固定時(shí)間執(zhí)行,本文就給大家介紹一下如何使用SpringBoot中的Schedule定時(shí)發(fā)送郵件,需要的朋友可以參考下2023-08-08
org.springframework.beans.BeanInstantiationException異常解決
本文主要介紹了org.springframework.beans.BeanInstantiationException異常解決,大多數(shù)情況下,這個(gè)異常是由于簡(jiǎn)單的配置錯(cuò)誤或者代碼問(wèn)題導(dǎo)致的,下面就來(lái)具體解決一下2024-03-03
prometheus監(jiān)控springboot應(yīng)用簡(jiǎn)單使用介紹詳解
這篇文章主要介紹了prometheus監(jiān)控springboot應(yīng)用簡(jiǎn)單使用介紹詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
Springboot基于enable模塊驅(qū)動(dòng)的實(shí)現(xiàn)
這篇文章主要介紹了Springboot基于enable模塊驅(qū)動(dòng)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
SpringFramework中的數(shù)據(jù)校驗(yàn)方式
這篇文章主要介紹了SpringFramework中的數(shù)據(jù)校驗(yàn)方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-12-12

