C 语言获取时间戳(精确到秒)
时间: 2023-07-21 19:11:35 浏览: 153
在 C 语言中获取时间戳可以使用 time.h 头文件中的 time() 函数。time() 函数返回从 1970 年 1 月 1 日 00:00:00 UTC 到当前时间的秒数(即时间戳)。以下是获取时间戳的示例代码:
```c
#include <stdio.h>
#include <time.h>
int main() {
time_t timestamp;
time(×tamp);
printf("当前时间戳为:%ld\n", timestamp);
return 0;
}
```
在上述代码中,time_t 是一个整型类型,用于存储时间戳。time() 函数的参数是一个指向 time_t 类型变量的指针,函数会将当前时间戳赋值给该变量。最后使用 printf() 函数输出时间戳即可。
相关问题
c语言实现获取当前时间戳的函数,时间戳精确到秒
在 C 语言中,可以使用 `time` 函数获取当前的时间戳(秒级别)。具体实现如下:
```c
#include <time.h>
// 获取当前时间戳,精确到秒
long get_timestamp() {
time_t t = time(NULL);
return (long)t;
}
```
使用 `time(NULL)` 函数获取当前时间的秒数,强制类型转换为 `long` 后返回即可。此函数返回的时间戳为系统时钟所产生的时间,因此可能会受到系统时钟的调整影响。
如果要把时分秒 秒精确到小数点后面4位
可以使用 C 语言中的 sprintf() 函数将时间格式化成带有小数点的字符串。下面是示例代码:
```c
#include <stdio.h>
#include <time.h>
int main() {
// 获取当前时间戳
struct timespec now;
clock_gettime(CLOCK_REALTIME, &now);
// 将时间戳转换为本地时间
struct tm *local_time = localtime(&now.tv_sec);
// 格式化时间为带小数点的字符串
char time_str[20];
sprintf(time_str, "%04d-%02d-%02d %02d:%02d:%02d.%04ld",
local_time->tm_year + 1900, local_time->tm_mon + 1, local_time->tm_mday,
local_time->tm_hour, local_time->tm_min, local_time->tm_sec, now.tv_nsec / 1000000);
// 打印时间字符串
printf("%s\n", time_str);
return 0;
}
```
输出结果类似于:
```
2022-09-06 23:58:59.1234
```
其中,tv_nsec 表示纳秒数,除以 1000000 后得到毫秒数,并通过 sprintf() 函数将其格式化为带有小数点的字符串。