如何将字符串 YYYY-MM-DD:HH:mm:SS:sss 转换为纪元时间?
How to convert string as YYYY-MM-DD:HH:mm:SS:sss into epoch time?
我有一个字符串 YYYY-MM-DD:HH:mm:SS:sss(例如:2017-10-11:04:36:26.376)。现在我想把它转换成纪元时间。这将是什么编程方法?
我正在用C++编程,能够提取变量中的信息。
原来是有公式的,只是比较难看。我最初在 1982 年的 BASIC 2.0 中实现了类似的东西(当每个字节都被计数时),后来将其转换为 Perl:
sub datestar {
$_=shift;
/^(....)(..)(..)/;
$fy=(-(<3));
$jd=$fy*365+int($fy/4)-int($fy/100)+int($fy/400)+int((((-3+12*(<3))*30.6)+.5)+);
return(86400*($jd-719469))
}
请注意,这需要像“20171011”这样的东西,而不是“2017-10-11”,并且不会转换 hours/minutes/seconds(很容易转换)。
一如既往,在使用前仔细检查代码,如果你真的想用它作为模板来编写你自己的代码。
但是,使用您的编程语言的现有函数来执行此操作会更好。
正如其他人所说,公式非常复杂,会使整个代码变得一团糟,所以为了避免这些,我计算从输入日期到 01-01-2000 的天数.据我所知,直到 01-01-2000 的纪元时间,因此通过计算考虑闰年的天数,我可以计算出总纪元时间。
我有一个字符串 YYYY-MM-DD:HH:mm:SS:sss(例如:2017-10-11:04:36:26.376)。现在我想把它转换成纪元时间。这将是什么编程方法? 我正在用C++编程,能够提取变量中的信息。
原来是有公式的,只是比较难看。我最初在 1982 年的 BASIC 2.0 中实现了类似的东西(当每个字节都被计数时),后来将其转换为 Perl:
sub datestar {
$_=shift;
/^(....)(..)(..)/;
$fy=(-(<3));
$jd=$fy*365+int($fy/4)-int($fy/100)+int($fy/400)+int((((-3+12*(<3))*30.6)+.5)+);
return(86400*($jd-719469))
}
请注意,这需要像“20171011”这样的东西,而不是“2017-10-11”,并且不会转换 hours/minutes/seconds(很容易转换)。
一如既往,在使用前仔细检查代码,如果你真的想用它作为模板来编写你自己的代码。
但是,使用您的编程语言的现有函数来执行此操作会更好。
正如其他人所说,公式非常复杂,会使整个代码变得一团糟,所以为了避免这些,我计算从输入日期到 01-01-2000 的天数.据我所知,直到 01-01-2000 的纪元时间,因此通过计算考虑闰年的天数,我可以计算出总纪元时间。