Анализ даты из строки

PowerShell:
Анализ даты из строки

Как это сделать:

PowerShell делает разбор дат довольно простым. Давайте посмотрим, как преобразовать строку в объект DateTime.

# Базовый разбор с использованием ParseExact
$dateString = "March 31, 2023"
$format = "MMMM dd, yyyy"
$parsedDate = [datetime]::ParseExact($dateString, $format, $null)

# Вывод
$parsedDate

На выходе получаем:

Friday, March 31, 2023 12:00:00 AM

Иногда строки имеют разные форматы. Давайте решим эту задачу, используя стандартный Parse:

# Разбор даты в различных форматах
$dateString = "2023-03-31T14:45:00"
$parsedDate = [datetime]::Parse($dateString)

# Вывод
$parsedDate

Здесь вывод:

Friday, March 31, 2023 2:45:00 PM

Имеете дело с форматами, специфичными для культуры? Используйте ParseExact с указанием конкретной культуры:

# Разбор, специфичный для культуры
$dateString = "31/03/2023 16:45"
$format = "dd/MM/yyyy HH:mm"
$culture = [Globalization.CultureInfo]::GetCultureInfo("en-GB")
$parsedDate = [datetime]::ParseExact($dateString, $format, $culture)

# Вывод
$parsedDate

На выходе получаем:

Friday, March 31, 2023 4:45:00 PM

Подробнее

Теперь о подробностях. Разбор даты всегда был капризным из-за разнообразия мировых форматов дат. В давние времена каждый язык программирования имел свой способ обработки дат, что часто приводило к несоответствиям. PowerShell, как более новый язык сценариев, воспользовался преимуществами класса DateTime из .NET, предоставляя мощные функции разбора.

В качестве альтернативы у нас есть Get-Date, который также может разобрать строку в объект DateTime. Рассмотрите использование TryParseExact и TryParse, если вы ожидаете неожиданное и хотите избежать исключений из-за неразбираемых строк.

Поговорим о реализации. Разбор даты чувствителен к культуре, что означает, что формат даты может варьироваться в зависимости от региона. Вот почему мы предоставляем информацию о культуре и формате, чтобы точно определить ожидаемую структуру строки с датой.

Иногда вы сталкиваетесь с очень необычными форматами — на помощь приходит метод ParseExact, ваш карманный нож для разбора дат. Он позволяет указать точный формат, который вы ожидаете. Здесь нет места догадкам.

Смотрите также

Чтобы расширить свои знания, изучите эти ресурсы:

Помните, разбор даты — мощный инструмент, используйте его мудро!