将时间戳转换为日期字符串

博客介绍了使用JavaScript获取年、月、日、小时、分钟和秒,对其用适当格式填充后,拼接成最终日期时间字符串的内容。
let nowDate = Date.now();
let dateObj = new Date(nowDate);
let formattedDate = dateObj.toLocaleString(); // 使用默认的日期和时间格式
console.log(formattedDate); // 2023/10/10 14:47:24

会获取年、月、日、小时、分钟和秒,并用适当的格式进行填充,然后拼接成最终的日期时间字符串:

let nowDate = Date.now();
let dateObj = new Date(nowDate);

let year = dateObj.getFullYear();
let month = String(dateObj.getMonth() + 1).padStart(2, '0');
let day = String(dateObj.getDate()).padStart(2, '0');
let hours = String(dateObj.getHours()).padStart(2, '0');
let minutes = String(dateObj.getMinutes()).padStart(2, '0');
let seconds = String(dateObj.getSeconds()).padStart(2, '0');

let formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; // yyyy-mm-dd hh:mm:ss
console.log(formattedDate); // 2023-10-10 14:47:24

在C语言中,可使用`time.h`库将时间戳转换字符串。以下是两种常见的实现方法: #### 方法一:使用`localtime`函数 ```c #include <stdio.h> #include <time.h> char* timestamp_to_datetime(long long timestamp) { int timestamp_length = snprintf(NULL, 0, "%lld", timestamp); static char result[20]; struct tm *tm; time_t time_seconds = (time_t)timestamp; tm = localtime(&time_seconds); // 容错处理 if (tm == NULL) { perror("localtime"); result[0] = '\0'; return result; } // 时间戳的前10位数转换日期时间 sprintf(result, "%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); return result; } int main() { long long timestamp = 1632931200; char* datetime = timestamp_to_datetime(timestamp); printf("%s\n", datetime); return 0; } ``` 此方法使用`localtime`函数将时间戳转换为`tm`结构,再用`sprintf`将其格式化为日期时间字符串[^1]。 #### 方法二:使用`gmtime_s`函数 ```c #include <stdio.h> #include <time.h> #include <tchar.h> int main() { TCHAR buffer[50] = {0}; struct tm Tm = {0}; time_t time = (time_t)1632931200; // 示例时间戳 gmtime_s(&Tm, &time); _stprintf(buffer, TEXT("%d年%d月%d日 %d:%d:%d"), Tm.tm_year + 1900, Tm.tm_mon + 1, Tm.tm_mday, Tm.tm_hour + 8, Tm.tm_min, Tm.tm_sec); _tprintf(TEXT("%s\n"), buffer); return 0; } ``` 该方法把时间戳转换为`tm`结构,使用`_stprintf`将其格式化为字符串。需注意,计算所得的年份要加上1900,月份要加1,若时区不在中国,小时数要加8 [^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值