icu - 为什么 ICU 对日期的“独立”值有区别?
问题描述
ICU 对“独立”值有不同的格式符号。例如:
q Stand Alone quarter
L Stand Alone month in year
c Stand Alone local day of week
该文档指出:
“独立”值是指那些旨在独立存在的值,而不是与其他格式化值一起使用的值。“第二季度”将使用独立格式(QQQQ),而“2007 年第二季度”将使用常规格式(qqqq yyyy)。
但是,这并不能解释为什么会有区别。我认为这对某些语言很重要,但有哪些例子?
(更令人困惑的是,该文档自相矛盾,因为它同时使用q
了Q
独立版本。)
我还认为其他字段(例如年、小时、分钟、秒)不需要独立版本,因为它们是数字的。但是,如果是这种情况,为什么工作日、月份和季度的独立值支持数字形式?
解决方案
我最终提交了ICU-21225以纠正文档中的矛盾并要求澄清。其中一条评论将我引导至https://www.unicode.org/reports/tr35/tr35-dates.html#months_days_quarters_eras,其中指出:
上下文可以是format(默认值),即在完整日期格式字符串中使用的表单(例如“Saturday, November 12”),或者是独立的,即独立使用的日期元素的表单,例如在日历标题中。格式和独立形式之间最重要的区别是语法区别,对于需要它的语言。例如,许多语言要求没有关联日期编号的月份名称(即独立形式)采用基本主格形式,而带有关联日期编号的月份名称(如完整日期格式)应该采用不同的语法形式:属格,部分等。
不过,我仍然对特定示例(哪些语言?)感到好奇。
推荐阅读
- react-native - Firebase Realtime DB:如果传递要写入的值尚未存储在数据库中,如何设置规则仅写入数据库
- pandas - Pandas - 重组数据框:一行作为列标题,一行作为行索引,第三行作为单元格值
- reactjs - 用于 React 组件的样式化组件 React HTML 元素工厂
- python - 输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值 - sklearn 余弦相似度
- opencl - 运行 OpenCL 代码时系统崩溃(屏幕无响应)
- python-3.x - 尝试使用python在列表中添加数组时参数数量无效
- lightgbm - 安装 lgb.train 分发的 Lightgbm 挂起
- r - 更新数据表头而不刷新整个应用程序(R,Shiny) dataTableProxy()
- javascript - React.js:组件根本不渲染或显示
- vue.js - 有没有更简单的方法来处理 vue 中的 graphql 突变?