`strftime` 是 C 库中一个强大的函数,用于将时间和日期转换为字符串表示形式。它允许开发人员使用各种格式化说明符来定制输出字符串,其中包括能够捕获毫秒的说明符。

strftime:捕捉时刻的毫秒strftime:捕捉时刻的毫秒


strftime:捕捉时刻的毫秒


毫秒说明符:`%3N`

`%3N` 说明符是 `strftime` 函数中用于格式化毫秒的特定说明符。它输出自纪元以来经过的毫秒数,到毫秒。例如,对于 2023 年 3 月 8 日,下午 3:45:23.123(UTC),`%3N` 将输出 `123`。

使用方法

要使用 `%3N` 说明符捕获毫秒,请将其包含在 `strftime` 格式化字符串中。格式字符串是一个字符序列,它指示 `strftime` 如何将时间和日期转换为字符串。

以下是使用方法示例:

```c include include

int main() { time_t t = time(NULL); struct tm tm = localtime(&t);

char buf[100]; strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S.%3N", tm); printf("Current time with milliseconds: %sn", buf);

return 0; } ```

输出将类似于:

``` Current time with milliseconds: 2023-03-08 15:45:23.123 ```

注意事项

`%3N` 说明符仅在某些平台上受支持。在不支持的平台上,它可能会产生不可预测的结果。 `strftime` 函数是线程安全的,但格式化字符串必须是线程局部存储的。 毫秒精度取决于系统时钟的分辨率。在某些系统上,分辨率可能低于 1 毫秒。

其他格式化说明符

除了 `%3N` 之外,strftime 还提供了一系列其他格式化说明符用于格式化时间和日期的不同部分。以下是一些常用的说明符:

| 说明符 | 描述 | |---|---| | `%Y` | 年份(四位数) | | `%m` | 月份(两位数) | | `%d` | 日期(两位数) | | `%H` | 小时(24 小时制) | | `%M` | 分钟 | | `%S` | 秒 |

总结