阅读量:101
strftime 是一个用于格式化时间的函数,在 Linux 和 Unix 系统中广泛应用
-
设置本地化环境变量:
在程序运行之前,设置
LC_TIME环境变量为相应的值,以便strftime使用正确的语言和格式。例如,如果你想使用简体中文格式,可以设置LC_TIME=zh_CN.UTF-8。在 shell 中,可以使用以下命令:export LC_TIME=zh_CN.UTF-8在 C 语言程序中,可以使用
setlocale()函数设置本地化环境变量:#includeint main() { setlocale(LC_TIME, "zh_CN.UTF-8"); // ... } -
使用本地化的格式字符串:
strftime支持特定的占位符,可以根据本地化设置生成相应的格式。以下是一些常用的占位符:%d:月中的第几天(01-31)%m:月份(01-12)%Y:四位数的年份(例如:2021)%y:两位数的年份(例如:21)%H:小时(24小时制,00-23)%I:小时(12小时制,01-12)%p:上午/下午标识(AM/PM)%M:分钟(00-59)%S:秒(00-59)
在简体中文本地化设置中,这些占位符将根据相应的格式生成中文表示。例如:
#include#include int main() { time_t rawtime; struct tm * timeinfo; time(&rawtime); timeinfo = localtime(&rawtime); printf("日期:%d-d-d\n", 1900 + timeinfo->tm_year, timeinfo->tm_mon + 1, timeinfo->tm_mday); printf("时间:d:d:d %p\n", timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec, timeinfo->tm_isdst ? "下午" : "上午"); return 0; } 输出将类似于:
日期:2022-07-20 时间:08:30:45 上午
通过以上方法,你可以使用 strftime 处理本地化。请注意,这里的示例是针对简体中文的,但你可以根据需要更改为其他语言。