C 语言中输出日期和时间格式91


C 语言提供了多种函数来操纵日期和时间,从而允许程序员输出各种格式的日期和时间。

输出日期格式

要输出日期格式,可以使用以下函数:```c
#include
#include
int main() {
time_t t = time(NULL);
struct tm *tm = localtime(&t);
printf("日期:%02d/%02d/%04d", tm->tm_mday, tm->tm_mon + 1, tm->tm_year + 1900);
return 0;
}
```

此代码输出日期格式为 "dd/mm/yyyy",其中:* `%02d`:以两位数字格式化天数(不足两位时填补前导零)
* `%02d`:以两位数字格式化月份(不足两位时填补前导零)
* `%04d`:以四位数字格式化年份

还可以使用其他格式说明符来输出不同格式的日期,例如:* `%a`:缩写星期几(如 "Mon")
* `%A`:完整星期几(如 "Monday")
* `%b`:缩写月份(如 "Jan")
* `%B`:完整月份(如 "January")

完整的格式说明符列表可以在 C 语言手册中找到。

输出时间格式

要输出时间格式,可以使用以下函数:```c
#include
#include
int main() {
time_t t = time(NULL);
struct tm *tm = localtime(&t);
printf("时间:%02d:%02d:%02d", tm->tm_hour, tm->tm_min, tm->tm_sec);
return 0;
}
```

此代码输出时间格式为 "hh:mm:ss",其中:* `%02d`:以两位数字格式化小时(不足两位时填补前导零)
* `%02d`:以两位数字格式化分钟(不足两位时填补前导零)
* `%02d`:以两位数字格式化秒(不足两位时填补前导零)

还可以使用其他格式说明符来输出不同格式的时间,例如:* `%I`:12 小时制的小时数(如 "01" 到 "12")
* `%H`:24 小时制的小时数(如 "00" 到 "23")
* `%p`:AM/PM 指示符(如 "AM" 或 "PM")

完整的格式说明符列表可以在 C 语言手册中找到。

自定义格式

除了预定义的格式说明符外,还可以使用 `strftime()` 函数自定义日期和时间的输出格式。`strftime()` 函数允许使用格式字符串来指定输出的格式。格式字符串包含转换说明符,这些说明符与 `printf()` 函数中的类似。```c
#include
#include
int main() {
time_t t = time(NULL);
struct tm *tm = localtime(&t);
char buf[100];
strftime(buf, sizeof(buf), "%A, %B %d, %Y", tm);
printf("自定义日期:%s", buf);
strftime(buf, sizeof(buf), "%I:%M %p", tm);
printf("自定义时间:%s", buf);
return 0;
}
```

此代码输出自定义的日期和时间格式,其中:* `%A, %B %d, %Y`:输出完整的星期几、月份、日期和年份
* `%I:%M %p`:输出 12 小时制的小时和分钟,以及 AM/PM 指示符

有关如何使用 `strftime()` 函数的更多详细信息,请参阅 C 语言手册。

时区考虑

需要注意的是,C 语言中显示的日期和时间取决于系统时区。要指定特定的时区,可以使用 `tzset()` 函数。`tzset()` 函数将读取环境变量 `TZ`,该变量指定当前时区。例如:```c
#include
#include
int main() {
putenv("TZ=America/Los_Angeles");
tzset();
time_t t = time(NULL);
struct tm *tm = localtime(&t);
printf("美西时间:%02d/%02d/%04d %02d:%02d:%02d", tm->tm_mday, tm->tm_mon + 1, tm->tm_year + 1900, tm->tm_hour, tm->tm_min, tm->tm_sec);
return 0;
}
```

此代码将输出美西时区的日期和时间。

2024-10-27


上一篇:C 语言实现乘法口诀表

下一篇:C 语言轻松输出文本文件:分步指南