- 主题:请问c#保存的int64的时间戳,用C++获取这个值再转换成时间格式
比如C#里面保存了一个int64的0x02071BFD34FBD888的时间戳,用C++的int64时间戳转换成时间格式就有问题了,即远远超过了9999-12-31 23:59:59:999,请问是哪里的问题?多谢!
--
FROM 125.34.23.*
非常感谢!现在是这样,问了写C#时间戳的同事,原来这个时间戳是DateTime.ToBinary(),即把DateTime类的对象序列化为64位二进制值。保存在日志里。这个值在被C++提取出来,还能转换成时间格式吗?应该不行了吧,必须得用C#的DateTime.FromBinary()反序列化才能拿到时间吧。不知道用C++怎么处理这个64位值能拿到时间格式
【 在 Bernstein 的大作中提到: 】
: 这俩时间的零点都不一致,当然不能互转
: c++的时间零点是1970-01-01
: c#里面,应该用目标时间戳 减去 1970-01-01对应的时间戳,得到一个和c++对应的时间戳
: ...................
--
FROM 123.115.144.*
这块实在没办法,开始对方都不知道是用语言实现的,只是把对方的日志格式发过来,里面有时间戳8字节,以为是标准的UNIX时间戳,我这边是C++提取日志,遇到这个时间戳,怎么换算都不对,经过多方打听对方才知道这个是C#保存的一个对象序列话值,根本不是时间戳格式。对方也不能改代码,改日志格式。只能我这边想办法了。
【 在 here080 的大作中提到: 】
: 忍不住回两句。
: 先假定你是一个正经的想好好写代码的程序员而不是写完这个project就闪人的那种。
: 1. 首先,你应该搞清楚这个时间戳的格式而不是让网友帮你猜。
: ...................
--
FROM 125.34.23.*