Преобразовать строку в дату и время в PowerShell
Я использую PowerShell, чтобы попытаться преобразовать строку в дату и время. Это должно быть легко, верно?
Я получаю строку из импорта CSV, и она поступает в формате от Jul-16
. Я пробовал несколько способов получить его в формате, который я хочу, это yyyy-MM-dd
и в настоящее время я нахожусь в следующем.
$invoice = $object.'Invoice Month'
$invoice = "01-" + $invoice
$invoice = [datetime]::parseexact($invoice, 'yyyy-MM-dd', $null)
Но я получаю ошибку:
Строка не была распознана как действительный DateTime.
Я что-то пропустил?
Ответы
Ответ 1
ParseExact сообщается о формате даты, которую, как ожидается, будет анализировать, а не формате, который вы хотите получить.
$invoice = '01-Jul-16'
[datetime]::parseexact($invoice, 'dd-MMM-yy', $null)
Если вы хотите вывести строку даты:
[datetime]::parseexact($invoice, 'dd-MMM-yy', $null).ToString('yyyy-MM-dd')
Крис
Ответ 2
Вам нужно указать формат, который у него уже есть, чтобы разобрать его:
$InvoiceDate = [datetime]::ParseExact($invoice, "dd-MMM-yy", $null)
Теперь вы можете вывести его в нужном вам формате:
$InvoiceDate.ToString('yyyy-MM-dd')
или же
'{0:yyyy-MM-dd}' -f $InvoiceDate
Ответ 3
$invoice = "Jul-16"
[datetime]$newInvoice = "01-" + $invoice
$newInvoice.ToString("yyyy-MM-dd")
Там вы идете, используйте ускоритель типа, но также и в новый var, если хотите использовать его в другом месте, используйте его так: $newInvoice.ToString("yyyy-MM-dd")
как $newInvoice
всегда будет в формате даты и времени, если вы не нажмете это как строка после, но потеряет способность выполнять функции datetime - добавление дней и т.д.
Ответ 4
Надеюсь ниже поможет!
PS C:\Users\aameer>$invoice = $object.'Invoice Month'
$invoice = "01-" + $invoice
[datetime]$Format_date =$invoice
Теперь тип конвертируется. Вы можете использовать метод или можете получить доступ к любому свойству.
Example :$Format_date.AddDays(5)
Ответ 5
введите описание изображения здесь
Цветовое кодирование HTML требуется через скрипт Power Shell:
Прикрепленное изображение выше - это мой вывод SQL, который должен быть выделен красным цветом, где дата отображается старше 5 дней.