在Linux系统中,时间戳(Timestamp)是从1970年1月1日00:00:00 UTC开始计算的秒数。毫秒时间戳则是这个秒数的基础上乘以1000,表示到毫秒级别的精度。
#include <stdio.h>
#include <sys/time.h>
int main() {
struct timeval tv;
gettimeofday(&tv, NULL);
long long milliseconds = (long long)tv.tv_sec * 1000 + (long long)tv.tv_usec / 1000;
printf("Current milliseconds timestamp: %lld\n", milliseconds);
return 0;
}
import datetime
timestamp_ms = 1633086000000 # 示例毫秒时间戳
timestamp_s = timestamp_ms / 1000
readable_time = datetime.datetime.fromtimestamp(timestamp_s)
print("Readable time:", readable_time)
原因:
解决方法:
long long
在C语言中。import datetime
import pytz
timestamp_ms = 1633086000000
timestamp_s = timestamp_ms / 1000
utc_time = datetime.datetime.utcfromtimestamp(timestamp_s).replace(tzinfo=pytz.UTC)
local_time = utc_time.astimezone(pytz.timezone('Asia/Shanghai'))
print("Local readable time:", local_time)
通过上述方法和示例代码,可以有效处理Linux系统中的毫秒时间戳转换问题,确保时间的准确性和一致性。
领取专属 10元无门槛券
手把手带您无忧上云