Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串中的日期转换为C中的日期更改格式_C_Date - Fatal编程技术网

将字符串中的日期转换为C中的日期更改格式

将字符串中的日期转换为C中的日期更改格式,c,date,C,Date,我需要解析如下字符串: Apr 3, 2014 10:03:51 AM YYYY-MM-DD HH:MM:SS 对这样的事情: Apr 3, 2014 10:03:51 AM YYYY-MM-DD HH:MM:SS 还有,这很长很长: 1396682344000 对于相同类型的字符串: YYYY-MM-DD HH:MM:SS 有任何库或函数可以这样做吗?我写C不是很舒服,也不习惯解析这种字符串 我用以下代码尝试了strtime: observationDate_消息类似于第一个字符串

我需要解析如下字符串:

Apr 3, 2014 10:03:51 AM
YYYY-MM-DD HH:MM:SS
对这样的事情:

Apr 3, 2014 10:03:51 AM
YYYY-MM-DD HH:MM:SS
还有,这很长很长:

1396682344000
对于相同类型的字符串:

YYYY-MM-DD HH:MM:SS
有任何库或函数可以这样做吗?我写C不是很舒服,也不习惯解析这种字符串

我用以下代码尝试了strtime:

observationDate_消息类似于第一个字符串(2014年4月3日上午10:45:01)

我得到的是:

0-52-0 36905376:32630:1497284224
英语辅导

您可以解析

Apr 3, 2014 10:03:51 AM
使用
sscanf()
创建此字符串,并获取年-月日期和时间信息。 如果
str
包含字符串

sscanf(str,"%s %d, %d %d:%d:%d AM",month,&dd,&yy,&hh,&mm,&ss);

您可以从字符串中获取数据。这只是一个示例,您可以使用
sscanf()

检查您的系统是否具有
strtime
功能,根据需要从字符串中提取格式化数据。它是POSIX的一部分,将为您解析字符串。要进行相反方向的转换,有一个C标准函数
strftime

为什么不在C中搜索日期时间函数?这个数字是1396682344000?它是一个日期。它被称为到期日。但我没有访问发件人代码的权限。我想这可能是从开始日期算起的秒数,它看起来像是一个unix时间戳,以微秒为单位,大约两天后。要正确地进行时间解析,您确实需要使用适当的时间库来正确地进行闰秒。通常,实现自己的时间解析不是一个好主意。时间真的很复杂,应该留给图书馆,在那里有人花了几十年的时间来理解时区、不同日历、闰秒、不同时间标准等方面的所有问题。请不要使用自己的时间处理,你很长一段时间都不会正确,当你这样做的时候,你的代码会像你没有使用的库一样复杂。那么,你指的是sscanf的使用?我完全支持Art的说法。如果您有可用的
strtime()
请使用它!不要重新发明轮子,我会检查的。你知道我怎么做吗?我可以访问ssh连接,因此可以执行任何操作。致力于linux@Art-来吧,它会很好的,至少到2016年2月28日为止!我的系统有它,但我有一个问题。我用这个更新了我的问题,看起来你的格式字符串to
strtime
的布局与你实际传入的字符串完全不同。它可能返回了一个您没有检查的错误。