将Unix时间转换为字符串的PowerShell函数?

3
我正在尝试使用ADO.NET和PowerShell读取Firefox places.sqlite数据库的日期字段。 显然,这些字段是Unix时间。
我正在寻找将其转换为.Net datetime或string的方法。
编辑: 我想将数据行绑定到WPF GridView。 我需要在SQL查询中进行转换的方法,或者在将数据行绑定到网格时进行转换的方法。
4个回答

9

以下内容可以帮助您走上正确的道路:

[TimeZone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970').AddSeconds($unix))

我接受这个答案,因为它是文字问题的答案。我的问题有些不同,同时我也找到了解决方法。 - bernd_k

3
function Convert-UnixTimeToDateTime([int]$UnixTime)
{
    (New-Object DateTime(1970, 1, 1, 0, 0, 0, 0, [DateTimeKind]::Utc)).AddSeconds($UnixTime)
}

这将返回一个“kind”设置为Utc的对象。如果您想要本地时间,请在结果对象上调用ToLocalTime方法。


3
[timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970').AddSeconds(1303743289))

2
我的问题的解决方案是:
SELECT datetime (b.dateAdded / 1000000, 'unixepoch', 'localtime') dateAdded  from moz_bookmarks

顺便说一句,在原始文档中,它有部分被隐藏了。

另一部分是你需要找出来的,即必须将整数除以1000000才能得到秒数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接