C获取当前系统的时间,格式为年月日时分秒
时间: 2024-04-30 19:23:49 浏览: 9
可以使用time.h头文件中的函数来获取当前系统的时间,然后再根据需要格式化输出。
下面是一个示例代码:
```c
#include <stdio.h>
#include <time.h>
int main() {
time_t now;
struct tm *tm_now;
char datetime[20];
// 获取当前时间
time(&now);
// 转换为本地时间
tm_now = localtime(&now);
// 格式化输出
strftime(datetime, 20, "%Y-%m-%d %H:%M:%S", tm_now);
printf("Current datetime: %s\n", datetime);
return 0;
}
```
输出结果如下:
```
Current datetime: 2021-05-05 10:30:50
```
在上面的代码中,time()函数用于获取当前时间的秒数,localtime()函数将秒数转换为本地时间,strftime()函数将本地时间格式化为指定的字符串形式。其中,"%Y-%m-%d %H:%M:%S"表示年月日时分秒的格式,可以根据需要自行修改。
相关问题
linux驱动中怎么以年月日时分秒的格式打印当前系统时间
在 Linux 驱动中,可以使用 `struct timespec` 结构体来获取当前系统时间,然后使用 `localtime` 函数将其转换为本地时间,最后使用 `strftime` 函数以指定的格式打印出来。
以下是示例代码:
```c
#include <linux/time.h>
#include <linux/module.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");
static int __init my_init(void)
{
struct timespec ts;
struct tm tm;
char buf[20];
getnstimeofday(&ts); // 获取当前系统时间
time_to_tm(ts.tv_sec, 0, &tm); // 将时间转换为本地时间
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", &tm); // 格式化时间字符串
printk(KERN_INFO "Current system time: %s\n", buf); // 打印时间字符串
return 0;
}
static void __exit my_exit(void)
{
printk(KERN_INFO "Goodbye!\n");
}
module_init(my_init);
module_exit(my_exit);
```
这个驱动模块在加载时会打印当前系统时间,格式为 `YYYY-MM-DD HH:MM:SS`,例如:
```
[ 129.192000] Current system time: 2022-05-08 22:15:34
```
c语言数字钟年月日时分秒代码
以下是一个简单的 C 语言数字钟的年月日时分秒代码示例:
```c
#include <stdio.h>
#include <time.h>
int main()
{
time_t now;
struct tm *tm_now;
time(&now);
tm_now = localtime(&now);
printf("当前时间: %04d/%02d/%02d %02d:%02d:%02d\n",
tm_now->tm_year + 1900, tm_now->tm_mon + 1, tm_now->tm_mday,
tm_now->tm_hour, tm_now->tm_min, tm_now->tm_sec);
return 0;
}
```
这个程序使用了 `time.h` 头文件中的 `time` 和 `localtime` 函数来获取当前时间,并将其格式化输出。其中 `tm_now` 结构体中包含了年月日时分秒的信息,可以通过其成员变量来获取。