Главная » Haskell » Модуль Locale

0

 содержит определения программных сущностей для работы с локализацией. Возможности по адаптации локальных правил на текущее время

поддерживаются только для форматов времени и даты. Этот модуль используется в модуле Time (см. раздел 11.11.) для правильного преобразования времени в строку. Использование:

import  System.Locale

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

Тип: TimeLocale

Описание: тип  для  представления локального (местного) формата  времени. Единственный одноимённый конструктор параметризует  набор полей, которые используются для наименования различных  понятий в области времени (дни недели, месяцы и т. д.)

Определение:

data  TimeLocale

=  TimeLocale

{

wDays        ::  [(String, String)] months       ::  [(String, String)] intervals ::  [(String, String)] amPm               ::  (String, String)

dateTimeFmt,  dateFmt,  timeFmt,  time12Fmt  :: String

}

Для данного типа определены экземпляры  классов Eq, Ord и Show.

Функция: defaultTimeLocale

Описание: константа,  определяющая текущие настройки времени  (англоязычные).

Определение:

defaultTimeLocale  ::  TimeLocale defaultTimeLocale

=  TimeLocale

{

wDays  = [("Sunday",    "Sun"),    ("Monday",        "Mon"), ("Tuesday", "Tue"),    ("Wednesday",  "Wed"), ("Thursday", "Thu"),    ("Friday",        "Fri"), ("Saturday", "Sat")],

("September", "Sep"), ("October",      "Oct"), ("November", "Nov"),  ("December",   "Dec")],

intervals = [ ("year",    "years"), ("month",  "months"), ("day",      "days"), ("hour",    "hours"), ("min",      "mins"), ("sec",      "secs"), ("usec",    "usecs")],

amPm  = ("AM", "PM"),

dateTimeFmt = "%a %b  %e  %H:%M:%S  %Z  %Y", dateFmt = "%m/%d/%y",

timeFmt  =  "%H:%M:%S", time12Fmt =  "%I:%M:%S  %p"

}

Функция:  iso8601DateFormat

Описание: формат времени по стандарту ISO 8601 (YYYY-MM-DD). В выходную строку также можно добавить спецификацию времени (HH:MM:SS). Определение:

iso8601DateFormat  :: Maybe String ->  String iso8601DateFormat  timeFmt  = "%Y-%m-%d"  ++ case  timeFmt  of

Nothing    ->  ""

Just  fmt  ->  ’ ’ : fmt

Функция: rfc822DateFormat

Описание: формат времени по стандарту RFC 822.

Определение:

rfc822DateFormat :: String

rfc822DateFormat = "%a, %_d   %b  %Y  %H:%M:%S   %Z"

Источник: Душкин Р. В., Справочник по языку Haskell. М.: ДМК Пресс, 2008. 544 с., ил.

По теме:

  • Комментарии