将字符串中的日期转换为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日为止!我的系统有它,但我有一个问题。我用这个更新了我的问题,看起来你的格式字符串tostrtime
的布局与你实际传入的字符串完全不同。它可能返回了一个您没有检查的错误。