newlocale(3)的手册页部分说明:

The mask is the logical OR of the following:

LC_COLLATE_MASK   Collation
LC_CTYPE_MASK     Character type
LC_MESSAGES_MASK  Messages
LC_MONETARY_MASK  Monetary
LC_NUMERIC_MASK   Numeric
LC_TIME_MASK      Time
LC_ALL_MASK       The logical OR of all of the above

但它并没有说明每个掩码位的具体含义。在我的例子中,我需要AM_STRPM_STR、月份缩写(ABMON_1,…)、月份全名(MON_1,…)、工作日缩写(ABDAY_1,…)和工作日全名(DAY_1,…)的本地化字符串。
作为一个有根据的猜测,我认为我需要LC_MESSAGES_MASK——但我是否也需要LC_TIME_MASK

最佳答案

你需要LC_TIME_MASK;你不需要LC_MESSAGES_MASK来满足你的要求。
LC_MESSAGES控制错误消息,而不是时间格式。要查看“未屏蔽”名称(如LC_TIME)的含义,请参阅手册页中的setlocale(3)。它们是标准的C(尽管链接到的POSIX页面包含一些扩展,特别是"POSIX"区域设置)。

07-24 09:46
查看更多