C语言中 有没有函数可以将字符串直接转为时间格式的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中 有没有函数可以将字符串直接转为时间格式的?相关的知识,希望对你有一定的参考价值。

相当于dephi的 strtodate这种功能的函数。
例如将"2010-10-10"这个字符串直接变成 struct tm;

希望各位有经验的兄弟帮帮!如果非要间接转换,给附带源码。
哦,我自己写了一行代码解决了这个问题。
sscanf(value, "%4d-%2d-%2d", &std_time.y, &std_time.m, &std_time.d);

后来者共勉!

由于实际生活中,字符串形式的时间有可能有多种形式,比如月日年,或年月日,中间的分隔符也可能有所不同。所以C语言并没有提供此类的转换函数。
如果有需求,那么在确定字符串的组织格式前提下,可以自行书写一个转换函数。
有两种思路:
1 传入字符串,逐位解析每个字符,智能检查出数字之间的分隔符。然后根据分隔符,取出各个位上的数值,如年月日时分秒等。最终赋值到时间结构的对应成员变量上。
2 使用sscanf,根据约定好的格式,构建对应的格式字符串,将数值提取到对应的变量中。

对比二者,第一种方式代码量更大,但可以兼容更复杂的输入方式,使得输入更灵活,程序健壮性更好。第二种方式适用于严格约定输入格式的情况,以最少的代码量实现效果。
参考技术A CString timestr = "2000年04月05日";
int a,b,c ;
sscanf(timestr.GetBuffer(timestr.GetLength()),"%d年%d月%d日",&a,&b,&c);
CTime time(a,b,c,0,0,0);

我也是这个办法本回答被提问者和网友采纳
参考技术B 好像有,不过需要把字符串首先转换成UTC格式

在Quartus中如何原理图(.bdf文件)可以直接转化为Verilog语言文件(.v文件)

在Quartus中如何原理图(.bdf文件)可以直接转化为Verilog语言文件(.v文件),但打开文件后发现只有一些端口声明和模块定义,没有对内部逻辑的描述,请问这是因为我没有购买altera公司的ip核吗,还是什么原因

参考技术A 可以的,选择File/Create Update/Create HDL file for Current file,选择Verilog HDL,Ok

以上是关于C语言中 有没有函数可以将字符串直接转为时间格式的?的主要内容,如果未能解决你的问题,请参考以下文章

sql server 怎样将字符串转化为时间格式

C++ 中有没有 LONG转化STRING STRING 转化LONG 的库函数

php怎么将指定日期转换为时间戳

SQL Server中如何将特定形式字符串转换为时间格式。并将该时间进行加减

linux怎么将时间戳转换为时间

linux怎么将时间戳转换为时间