Spec-Zone.ru › Haskell 7

Data.Time.Format

Safe Haskell Safe
Language Haskell2010

Содержание

  • Форматирование в стиле UNIX
  • Разбор в стиле UNIX
  • Локаль

Форматирование в стиле UNIX

type NumericPadOption = Maybe Char Source

class FormatTime t where Source

Методы

formatCharacter :: Char -> Maybe (TimeLocale -> Maybe NumericPadOption -> t -> String) Source

Экземпляры

FormatTime Day
FormatTime UTCTime
FormatTime TimeZone
FormatTime TimeOfDay
FormatTime ZonedTime
FormatTime LocalTime

formatTime :: FormatTime t => TimeLocale -> String -> t -> String Source

Замените различную информацию, связанную со временем, для каждого %-кода в строке, согласно formatCharacter.

Для всех типов (обратите внимание, что эти три делаются здесь, а не formatCharacter):

%%
%
%t
tab
%n
новая строка

Модификаторы в стиле glibc могут использоваться перед буквой (здесь обозначены как z):

%-z
без заполнения
%_z
заполнение пробелами
%0z
заполнение нулями
%^z
преобразование в верхний регистр
%#z
преобразование в нижний регистр (последовательно, в отличие от glibc)

Для TimeZone (и ZonedTime и UTCTime):

%z
смещение часового пояса в формате -HHMM.
%Z
имя часового пояса

Для LocalTime (и ZonedTime и UTCTime):

%c
как dateTimeFmt locale (например, %a %b %e %H:%M:%S %Z %Y)

Для TimeOfDay (и LocalTime и ZonedTime и UTCTime):

%R
то же, что и %H:%M
%T
то же, что и %H:%M:%S
%X
как timeFmt locale (например, %H:%M:%S)
%r
как time12Fmt locale (например, %I:%M:%S %p)
%P
половина дня от (amPm locale), преобразовано в нижний регистр, am, pm
%p
половина дня от (amPm locale), AM, PM
%H
час дня (24-часовой), с заполнением нулями до двух символов, 00 - 23
%k
час дня (24-часовой), с заполнением пробелами до двух символов, 0 - 23
%I
половина дня (12-часовой), с заполнением нулями до двух символов, 01 - 12
%l
половина дня (12-часовой), с заполнением пробелами до двух символов, 1 - 12
%M
минута часа, с заполнением нулями до двух символов, 00 - 59
%S
секунда минуты (без дробной части), с заполнением нулями до двух символов, 00 - 60
%q
пикосекунда секунды, с заполнением нулями до двенадцати символов, 000000000000 - 999999999999.
%Q
десятичная точка и дробная часть секунды, до 12 десятичных знаков секунды, без завершающих нулей. Для целого числа секунд, %Q выдает пустую строку.

Для UTCTime и ZonedTime:

%s
количество целых секунд с начала эпохи Unix. Для времени до начала эпохи Unix это отрицательное число. Обратите внимание, что в %s.%q и %s%Q десятичные дроби положительные, а не отрицательные. Например, 0,9 секунды до начала эпохи Unix форматируются как -1.1 с %s%Q.

Для Day (и LocalTime и ZonedTime и UTCTime):

%D
то же, что и %m/%d/%y
%F
то же, что и %Y-%m-%d
%x
как dateFmt locale (например, %m/%d/%y)
%Y
год, без заполнения. Обратите внимание, что %0y и %_y заполняют до четырех символов
%y
год столетия, с заполнением нулями до двух символов, 00 - 99
%C
столетие, без заполнения. Обратите внимание, что %0C и %_C заполняют до двух символов
%B
название месяца, полная форма (fst от months locale), January - December
%b, %h
название месяца, короткая форма (snd от months locale), Jan - Dec
%m
месяц года, с заполнением нулями до двух символов, 01 - 12
%d
день месяца, с заполнением нулями до двух символов, 01 - 31
%e
день месяца, с заполнением пробелами до двух символов, 1 - 31
%j
день года, с заполнением нулями до трех символов, 001 - 366
%G
год для формата даты недели, без заполнения. Обратите внимание, что %0G и %_G заполняют до четырех символов
%g
год столетия для формата даты недели, с заполнением нулями до двух символов, 00 - 99
%f
столетие для формата даты недели, без заполнения. Обратите внимание, что %0f и %_f заполняют до двух символов
%V
неделя года для формата даты недели, с заполнением нулями до двух символов, 01 - 53
%u
день недели для формата даты недели, 1 - 7
%a
день недели, короткая форма (snd от wDays locale), Sun - Sat
%A
день недели, полная форма (fst от wDays locale), Sunday - Saturday
%U
неделя года, где недели начинаются с воскресенья (как sundayStartWeek), с заполнением нулями до двух символов, 00 - 53
%w
номер дня недели, 0 (= воскресенье) - 6 (= суббота)
%W
неделя года, где недели начинаются с понедельника (как mondayStartWeek), с заполнением нулями до двух символов, 00 - 53

Разбор в стиле UNIX

parseTimeM Source

Аргументы

:: (Monad m, ParseTime t)
=> Bool

Разрешить ведущие и завершающие пробелы?

-> TimeLocale

Временная локализация.

-> String

Строка формата.

-> String

Входная строка.

-> m t

Возвращает значение времени или ошибку, если входные данные не могут быть распарсены с использованием заданного формата.

Разбирает значение времени, заданное строкой формата. Поддерживает те же %-коды, что и formatTime, включая %-, %_ и %0 модификаторы. Регистр не имеет значения. Некоторые вариации во входных данных принимаются:

%z
принимает любой из -HHMM или -HH:MM.
%Z
принимает любую строку букв или любой из форматов, принимаемых %z.
%0Y
принимает ровно четыре цифры.
%0G
принимает ровно четыре цифры.
%0C
принимает ровно две цифры.
%0f
принимает ровно две цифры.

parseTimeOrError Source

Аргументы

:: ParseTime t
=> Bool

Разрешить ведущие и завершающие пробелы?

-> TimeLocale

Временная локализация.

-> String

Строка формата.

-> String

Входная строка.

-> t

Значение времени.

Разбирает значение времени, заданное строкой формата. Возвращает ошибку, если входные данные не могут быть распарсены с использованием заданного формата. См. parseTimeM для подробностей.

readSTime Source

Аргументы

:: ParseTime t
=> Bool

Разрешить ведущие пробелы?

-> TimeLocale

Временная локализация.

-> String

Строка формата

-> ReadS t

Разбирает значение времени, заданное строкой формата. См. parseTimeM для подробностей.

readPTime Source

Аргументы

:: ParseTime t
=> Bool

Разрешить ведущие пробелы?

-> TimeLocale

Временная локализация.

-> String

Строка формата

-> ReadP t

Разбирает значение времени, заданное строкой формата. См. parseTimeM для подробностей.

parseTime Source

Аргументы

:: ParseTime t
=> TimeLocale

Временная локализация.

-> String

Строка формата.

-> String

Входная строка.

-> Maybe t

Значение времени, или Nothing если входные данные не могут быть распарсены с использованием заданного формата.

Устарело: используйте "parseTimeM True" вместо этого

readTime Source

Аргументы

:: ParseTime t
=> TimeLocale

Временная локализация.

-> String

Строка формата.

-> String

Входная строка.

-> t

Значение времени.

Устарело: используйте "parseTimeOrError True" вместо этого

readsTime Source

Аргументы

:: ParseTime t
=> TimeLocale

Временная локализация.

-> String

Строка формата

-> ReadS t

Устарело: используйте "readSTime True" вместо этого

class ParseTime t where Source

Класс типов, которые могут быть распарсены, учитывая строку формата времени в стиле UNIX.

Методы

buildTime Source

Аргументы

:: TimeLocale

Временная локализация.

-> [(Char, String)]

Пары символов формата и соответствующей части входных данных.

-> t

Создает значение времени из разобранной входной строки. Если входные данные не содержат всей информации, необходимой для построения полного значения, все отсутствующие части должны быть взяты из 1970-01-01 00:00:00 +0000 (это был четверг). При отсутствии %C или %Y, век равен 1969 - 2068.

Экземпляры

ParseTime Day
ParseTime UTCTime
ParseTime TimeZone
ParseTime TimeOfDay
ParseTime ZonedTime
ParseTime LocalTime

Локализация

data TimeLocale Source

Конструкторы

TimeLocale

Поля

wDays :: [(String, String)]

полные и сокращённые дни недели, начиная с воскресенья

months :: [(String, String)]

полные и сокращённые названия месяцев

amPm :: (String, String)

символы AM/PM

dateTimeFmt, dateFmt, timeFmt, time12Fmt :: String

строки форматирования

knownTimeZones :: [TimeZone]

известные часовые пояса по названию

Примеры

Eq TimeLocale
Ord TimeLocale
Show TimeLocale

defaultTimeLocale :: TimeLocale Source

Локаль, представляющая американские правила.

knownTimeZones содержит только десять часовых поясов, упомянутых в RFC 822 разд. 5: "UT", "GMT", "EST", "EDT", "CST", "CDT", "MST", "MDT", "PST", "PDT". Обратите внимание, что функции парсинга также будут обрабатывать однобуквенные военные часовые пояса и формат +HHMM.

iso8601DateFormat :: Maybe String -> String Source

Строка формата в соответствии с ISO-8601.

Аргумент Maybe String позволяет указать необязательную спецификацию времени. Например:

iso8601DateFormat Nothing            == "%Y-%m-%d"           -- i.e. YYYY-MM-DD
iso8601DateFormat (Just "%H:%M:%S")  == "%Y-%m-%dT%H:%M:%S"  -- i.e. YYYY-MM-DDTHH:MM:SS

rfc822DateFormat :: String Source

Строка формата в соответствии с RFC822.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/time-1.5.0.1/Data-Time-Format.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API