将SQL Server数据时间格式转换为unix时间



我们正在使用JSON API,该API返回的时间格式是SQL Server日期时间格式,例如:/date (-6847804800000+0000)

我正试图将其转换为unix时间使用标准方法,有人知道一个简单的方法来做到这一点吗?如果没有,将其转换成任何其他类型的日期格式将会有所帮助。

PS:我们不能访问SQL Server数据库来改变API输出数据的方式

快速查看PowerShell:

PS> [datetime]"1970-01-01 00:00" + [timespan]::FromMilliseconds(-6847804800000)
01 January 1753 00:00:00

所以评论者Martin和Gerben似乎是正确的。这是相对于19700101T000000的毫秒偏移量。

服务正在传递SqlDateTime.MinValue +它正在谈论的一天中的小时数。

基数1753被用来确定偏移量值,而你的偏移量是1970。

首先,要取返回的-6847804800000,并将1753到1970之间的总毫秒数相加。这将给出从1970年开始的偏移量。

        SqlDateTime minSqlDateTime = SqlDateTime.MinValue;
        DateTime minTimeStampDateTime = new DateTime(1970, 1, 1);
        double milli = (minTimeStampDateTime - (DateTime)minSqlDateTime).TotalMilliseconds; // = 6847804800000
        double toDetermineTicks = -6847804080000; // so this is 01/01/1753 12:00 PM
        double ActualUnixTicks = (toDetermineTicks + milli) / 1000;

相关内容

  • 没有找到相关文章

最新更新