本文介紹了在年份值的上下文中,&aaaa&q;與";yyyy&q;有什么不同?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
參考SimpleDateFormat docs,表示年份的模式字符是y
,因此我們有yy
和yyyy
(分別為13,2013)這樣的表示。那很好。
當我輸出大多數(shù)區(qū)域設置的DEFAULT
/SHORT
/MEDIUM
/LONG
/FULL
模式時,我得到的結(jié)果大致如下:
(EG:新西蘭)
Default: d/MM/yyyy
Short: d/MM/yy
Medium: d/MM/yyyy
Long: d MMMM yyyy
Full: EEEE, d MMMM yyyy
然而,看看一些地區(qū),例如法國,我得到了這個:
Default: j MMM aaaa
Short: jj/MM/aa
Medium: j MMM aaaa
Long: j MMMM aaaa
Full: EEEE j MMMM aaaa
顯然,這里aaaa
表示的是年份,但是yyyy
和aaaa
在意圖上有什么區(qū)別?IE:為什么他們用aaaa
而不是只用yyyy
。
一開始我以為法語中的”[y]ear”是”[a]nnée”(而”[d]ay”是”[j]our”),但我發(fā)現(xiàn)匈牙利語(和許多其他地區(qū))也是aaaa
,而匈牙利語中”Year”的意思是”év”(一天”nap”),所以我認為我所做的”a”/”année”關聯(lián)是巧合。
那么這里應該推斷的區(qū)別是什么?
我到處搜索,但一無所獲。對于Java開發(fā)人員來說,這可能是顯而易見的事情,但我只是一名CFML開發(fā)人員,當Java做一些比我在本機CFML中做的事情更方便的事情時,我只是偶爾將Java插入到我的CFML中。如果這是個愚蠢的問題,我很抱歉。
推薦答案
如果您查看java.text.DateFormatSymbols
,您會發(fā)現(xiàn)以下字段:
/**
* Localized date-time pattern characters. For example, a locale may
* wish to use 'u' rather than 'y' to represent years in its date format
* pattern strings.
* This string must be exactly 18 characters long, with the index of
* the characters described by <code>DateFormat.ERA_FIELD</code>,
* <code>DateFormat.YEAR_FIELD</code>, etc. Thus, if the string were
* "Xz...", then localized patterns would use 'X' for era and 'z' for year.
* @serial
*/
String localPatternChars = null;
這是一個按預定義順序為每個格式元素包含一個字符的字符串(例如,字符0是紀元格式字符,字符1是年份格式字符,依此類推)。
此字段是從sun.text.resources.FormatData
資源包(當然,根據(jù)區(qū)域設置)從DateTimePatternChars
鍵加載的。
如果您檢查sun.text.resources.FormatData_fr
資源,您會發(fā)現(xiàn)鍵-值對{ "DateTimePatternChars", "GaMjkHmsSEDFwWxhKzZ" }
。
長話短說-法國區(qū)域設置中的”a”格式字符與美國區(qū)域設置中的”y”格式字符具有完全相同的效果,只是名稱不同。
這篇關于在年份值的上下文中,&aaaa&q;與";yyyy&q;有什么不同?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,