Преобразование времени Unix с помощью powershell

Import-Module SQLite
mount-sqlite -name places -data (resolve-path C:\Users\malware_win7x86\Desktop\places.sqlite)
$places = Get-ChildItem places:\moz_places

foreach ($entry in $places)
{
    [datetime]$origin = '1970-01-01 00:00:00'
    $visited = $entry.last_visit_date

    if ($visited) {
        $vtime = $origin.AddSeconds($visited)
    } else {
        $vtime = 'testing'
    }

    write-host ""
    $entry.url,
    $entry.visit_count,
    $vtime
}

Ссылка: Преобразование времени Unix с помощью PowerShell

Мне любопытно, как обрабатывать записи без данных.

Например, вот некоторые выходные данные этого сценария:

http://sysforensics.org/
1
Exception calling "AddSeconds" with "1" argument(s): "Value to add was out of range.
Parameter name: value"
At line:7 char:28
+ $vtime = $origin.AddSeconds <<<< ($visited)
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

Есть идеи по этому поводу?

Спасибо


person sysforensics    schedule 26.07.2012    source источник


Ответы (2)


Эта ошибка выглядит так, будто вы даете AddSeconds слишком большой или слишком маленький аргумент, а не пропускаете данные. Вызов AddSeconds с $null или 0 вернет исходную дату без изменений.

При этом я не могу быть уверен, так как вы не предоставили фактическое целое число, которое пытаетесь преобразовать, у меня была та же проблема, пока я не понял, что данные, которые я получал, были в милли секундах , а не секунды. Вы можете использовать вместо этого AddMilliseconds или разделить число на 1000 перед использованием AddSeconds, если вас не волнует потеря точности.

Благодарим этот ответ за то, что они указали мне правильное направление.

person amloessb    schedule 27.04.2015

В этом случае вы просто пропустите вызов метода и подставите значение по умолчанию, например:

if ($visited) { # or maybe $ivisited -is [int] or whatever your criterion is
  $vtime = $origin.AddSeconds($visited)
} else {
  $vtime = $null
}
person Joey    schedule 26.07.2012
comment
Я внес некоторые изменения в код. Кажется, это все еще не работает. Я продолжаю получать ошибку добавления секунд. Он также не печатает никаких тестовых комментариев к элементам, которые не содержат $ visit. - person sysforensics; 27.07.2012