gpt4 book ai didi

java - 在年份值的上下文中, "aaaa"与 "yyyy"有何不同?

转载 作者:搜寻专家 更新时间:2023-10-31 20:20:54 25 4
gpt4 key购买 nike

引用SimpleDateFormat docs ,表示年份的模式字符是y,所以我们有yyyyyy(分别是13、2013)这样的表示。没关系。

当我输出 DEFAULT/SHORT/MEDIUM/LONG/FULL 大多数语言环境的模式,我从这些方面得到一些东西:

(例如:新西兰)

Default: d/MM/yyyy
Short: d/MM/yy
Medium: d/MM/yyyy
Long: d MMMM yyyy
Full: EEEE, d MMMM yyyy

但是在某些地区,例如法国,我明白了:

Default: j MMM aaaa
Short: jj/MM/aa
Medium: j MMM aaaa
Long: j MMMM aaaa
Full: EEEE j MMMM aaaa

很明显这里的aaaa是年份的表示,但是yyyyaaaa在意图上有什么区别呢? IE:为什么他们使用 aaaa 而不是 yyyy

最初我认为它可能与法语类似,因为“[y]ear”是“[a]nnée”(而“[d]ay”是“[j]our”,但我看到它也是aaaa 代表匈牙利语(和许多其他语言环境),匈牙利语代表“year”的是“év”(day“nap”),所以我认为我正在制作的“a”/“année”相关性是巧合。

那么这里应该推断出的区别是什么?

我用谷歌搜索了一下,但一无所获。对于 Java 开发人员来说,这也可能是显而易见的事情,但我只是一个 CFML 开发人员,当 Java 做的事情比我在 native CFML 中做的更方便时,我只是偶尔将 Java 连接到我的 CFML 中。很抱歉,如果这是一个愚蠢的问题。

最佳答案

如果查看 java.text.DateFormatSymbols,您会发现以下字段:

/**
* 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 资源包(当然是每个语言环境)从 DateTimePatternChars 键加载的。

如果您检查 sun.text.resources.FormatData_fr 资源,您将找到键值对 { "DateTimePatternChars", "GaMjkHmsSEDFwWxhKzZ"}

长话短说 - 法国语言环境中的“a”格式字符与美国语言环境中的“y”格式字符具有完全相同的效果,只是叫法不同。

关于java - 在年份值的上下文中, "aaaa"与 "yyyy"有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19154099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com