根据手册页,实用程序的格式说明符应使用区域设置特定的日期格式%x
。date
但是,当我指定相同的安装区域设置并在两台不同的计算机上尝试时,每台计算机上都会得到不同的格式:
在机器“A”上:
$ locale -a | grep fr_FR
fr_FR
fr_FR.ISO8859-1
fr_FR.ISO8859-15
fr_FR.UTF-8
$ LC_ALL=fr_FR.UTF-8 date +%x
31.05.2012
在机器“B”上:
$ locale -a | grep fr_FR
fr_FR.utf8
$ LC_ALL=fr_FR.UTF-8 date +%x
31/05/2012
我看了一下http://demo.icu-project.org/icu-bin/locexp?d_=en&_=fr_FR,“短日期”部分看起来好像机器“B”就在这里。或者我是否误解了某些内容,实际上区域设置并没有绝对指定日期格式,并且跨实现会出现这种变化?
编辑:嗯..没有接受者...如果我说机器“A”是 OS X Lion,机器“B”是 Ubuntu 12.04,这两种机器都可以合理地期望具有正确的国际化/,这会更有趣吗?本地化设置?
答案1
区域设置取决于实现。尽管大多数现代 unice 确实使用xx_YY
和xx_YY.charset
,但甚至连语言环境名称也无法保证。除了在C
和区域设置之外,您不能确定在不同的计算机上会得到相同的结果POSIX
。
作为一个法国人,我会说B是对的,A是错的。在法国,日期不使用点分隔。 (它们可能用于其他法语国家;也许fr_CH
应该有点。)