在 Oracle Solaris 中进行应用程序国际化和本地化

退出打印视图

更新时间: 2014 年 7 月
 
 

用于检索和格式化语言环境数据的函数

以下是用于检索和格式化语言环境数据的函数:

localeconv()

检索数字格式信息

nl_langinfo()

检索语言和语言环境信息

strftime()

将日期和时间转换为字符串

strptime()

将字符串转换为时间结构

strfmon()

将货币值转换为字符串

这些函数用于查询语言环境特定的数据,例如时间格式或货币符号。这些函数也可用于根据区域约定设置时间、数字或货币信息的格式。有关更多信息,请参见 langinfo.h(3HEAD) 和 mktime(3C) 手册页。

示例 2-4   获取语言环境的代码集名称

以下代码片段说明如何获取当前程序的语言环境的 codeset

#include <langinfo.h>
:
char *cs;
cs = nl_langinfo(CODESET);

在此例中,对于 C 语言环境,cs 变量指向字符串 "646",代表 US-ASCII 代码集的规范名称。有关代码集的更多信息,请参见Converting Codesets

示例 2-5  查询语言环境的肯定性响应字符串

以下代码片段说明如何将 yesstr 变量设置为 yes/no 字符串,此字符串用于当前语言环境的肯定性响应。

#include <langinfo.h>
:
char *yesstr;
yesstr = nl_langinfo(YESSTR);

例如,在 es_ES.UTF-8 语言环境中,yesstr 将指向字符串

示例 2-6  打印当地时间

以下代码片段说明如何显示根据针对环境设置的语言环境的区域约定设置格式的当前日期和时间。

#include <stdio.h>
#include <locale.h>
#include <time.h>
   :
char    *locale, ftime[BUFSIZ];
time_t  t;

locale = setlocale(LC_ALL, "");
if (locale == NULL) {
/* handle error */
}

if (0 != strftime(ftime, BUFSIZ, (char *)NULL, localtime(&t))) {
(void) printf("%s - %s\n", locale, ftime);
}