从UNIX时间戳(以秒为单位)转换为本地时间代码实现
时间: 2024-09-10 11:28:31 浏览: 28
在C语言中,将Unix时间戳(以秒为单位)转换为本地时间通常通过`localtime()`或其线程安全版本`localtime_r()`函数配合`gmtime()`来实现。下面是一个简单的代码示例:
```c
#include <stdio.h>
#include <time.h>
int main() {
// 获取当前时间的Unix时间戳(秒)
time_t timestamp = time(NULL);
// 转换为本地时间
struct tm local_time;
localtime_r(×tamp, &local_time); // 使用localtime_r防止线程同步问题
// 格式化输出本地时间
char buffer[80];
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", &local_time);
printf("Local Time: %s\n", buffer);
return 0;
}
```
在这个例子中,`time(NULL)`获取当前系统的时间戳,然后`localtime_r()`函数将这个时间戳转换为本地日期和时间结构`local_time`。`strftime()`函数则用于格式化这个结构得到人类可读的字符串。
相关问题
将Unix时间戳转换为北京时间 C语言
实现方式如下:
```c
#include <stdio.h>
#include <time.h>
int main() {
time_t timestamp = 1620029823; // 这里放 Unix 时间戳
struct tm *local_time = localtime(×tamp);
char time_str[20];
strftime(time_str, 20, "%Y-%m-%d %H:%M:%S", local_time);
printf("%s\n", time_str);
return 0;
}
```
这段代码会将 Unix 时间戳 `1620029823` 转换为北京时间(当前为东部八区)的形式输出,如下:
```
2021-05-03 15:50:23
```
这里用到了 C 标准库中的函数 `time`、`localtime`、`strftime`。函数 `time` 获取当前系统时间的 Unix 时间戳,函数 `localtime` 将 Unix 时间戳转换为本地时间,函数 `strftime` 将时间格式化为指定的字符串形式。
将本地时间转换unix时间戳
可以使用Python的time模块来将本地时间转换为Unix时间戳。以下是示例代码:
```python
import time
# 获取当前本地时间
local_time = time.localtime()
# 将本地时间转换为Unix时间戳
unix_timestamp = int(time.mktime(local_time))
print("本地时间为:", time.strftime("%Y-%m-%d %H:%M:%S", local_time))
print("Unix时间戳为:", unix_timestamp)
```
其中,`localtime()`函数获取当前本地时间;`mktime()`函数将本地时间转换为Unix时间戳;`strftime()`函数用于格式化时间输出。