一个Powershell函数将unix时间转换为字符串?

时间:2011-04-25 14:16:43

标签: datetime powershell ado.net sqlite unix-timestamp

我正在尝试使用ADO.NET和PowerShell读取Firefox places.sqlite的一些日期字段。

显然这些字段是在Unix时间。

我正在寻找转换为.Net日期时间或字符串

修改 我想将数据行绑定到WPF GridView。

我需要一种方法在SQL查询中进行转换,或者在将数据行绑定到网格时使用某种方式。

4 个答案:

答案 0 :(得分:8)

这样的事情会让你走上正确的道路:

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

我的问题的解决方案是

SELECT datetime (b.dateAdded / 1000000, 'unixepoch', 'localtime') dateAdded  from moz_bookmarks

BTW它部分隐藏在the original documentation中。

另一部分是你必须要知道,你必须将整数除以1000000才能获得秒数。