Яндекс.Метрика

FormatTime -Autohotkey

Преобразует метку времени формата YYYYMMDDHH24MISS в указанный формат даты/времени.

Преобразует метку времени формата YYYYMMDDHH24MISS в указанный формат даты/времени.

FormatTime, OutputVar [, YYYYMMDDHH24MISS, Format]

Параметры

OutputVar Имя переменной, куда будет сохранён результат.
YYYYMMDDHH24MISS Оставьте этот параметр пустым, чтобы использовать текущие локальные дату и время. Иначе укажите метку времени в формате YYYYMMDDHH24MISS либо целиком, либо её начальную часть. Если дата и/или время заданы с ошибкой — например, 29 февраля для невисокосного года — дата и/или время будут опущены из OutputVar. Хотя поддерживаются только годы между 1601 и 9999, но часть метки, относящаяся к времени, будет отформатирована правильно и для более ранних лет, если время задано правильно.

Прим. переводчика — элементы формата YYYYMMDDHH24MISS:

YYYY — год, 4 цифры
MM — месяц, 2 цифры (01-12)
DD — день месяца, 2 цифры (01-31)
HH24 — час в 24-часовом формате, 2 цифры (00-23)
MI — минуты, 2 цифры (00-59)
SS — секунды, 2 цифры (00-59)
Format Если опущен, будет использоваться "длинный" формат даты и времени, соответствующий локали текущего пользователя. Например: 4:55 27 ноября 2004 г.

Иначе укажите один или несколько форматов из списка ниже, с любым количеством пробелов или знаков препинания между ними (запятые экранировать не нужно). Например: M/d/yyyy h:mm tt (заметьте, что M должна быть в верхнем регистре).

Форматы даты (чувствительны к регистру)
d День месяца без нуля в начале (1 - 31).
dd День месяца с нулём в начале (01 - 31).
ddd Сокращённое название дня недели (например, Пн) на языке текущего пользователя.
dddd Полное название дня недели (например, Понедельник) на языке текущего пользователя.
M Месяц без нуля в начале (1 - 12).
MM Месяц с нулём в начале (01 - 12).
MMM Сокращённое название месяца (например, Янв) на языке текущего пользователя.
MMMM Полное название месяца (например, Январь) на языке текущего пользователя.
y Год без века, без нуля в начале (0 - 99).
yy Год без века, с нулём в начале (00 - 99).
yyyy Год с веком. Например: 2005.
gg Период/эра для локали текущего пользователя (будет пустым, если таковые отсутствуют).

Форматы времени (чувствительны к регистру)
h Часы без нуля в начале; 12-часовой формат (1 - 12).
hh Часы с нулём в начале; 12-часовой формат (01 - 12).
H Часы без нуля в начале; 24-часовой формат (0 - 23).
HH Часы с нулём в начале; 24-часовой формат (00 - 23).
m Минуты без нуля в начале (0 - 59).
mm Минуты с нулём в начале (00 - 59).
s Секунды без нуля в начале (0 - 59).
ss Секунды с нулём в начале (00 - 59).
t Односимвольный маркёр времени, такой как A или P (зависит от локали).
tt Многосимвольный маркёр времени, такой как AM или PM (зависит от локали).

Следующие форматы должны использоваться отдельно, т.е. без каких-либо других форматов или другого текста в параметре Format. Эти форматы нечувствительны к регистру.
(Пусто) Оставьте параметр Format пустым, чтобы получить время, за которым следует длинная дата. Например, 4:55 27 ноября 2004 г.
Time Время в локали текущего пользователя, например, 5:26.
Shortd class="ntd"ate Короткая дата в локали текущего пользователя, например, 29.02.04.
LongDate Длинная дата в локали текущего пользователя, например, 23 апреля 2004 г.
YearMonth Год и месяц в локали текущего пользователя, например, Февраль 2004 г.
YDay День года без нулей в начале (1 - 366).
YDay0 День года с нулями в начале (001 - 366).
WDay День недели (1 - 7). 1 соответствует воскресенью.
YWeek Полный год и неделя в стандарте ISO 8601. Например, 200453. Если четыре или более дней недели, содержащей 1 января, приходится уже на новый год, она считается неделей 1. Иначе она считается последней неделей старого года,а первой неделей нового будет следующая за ней. Следовательно, 4 января и первый четверг января всегда находятся в неделе 1.

Добавочные опции

Нижеследующие опции можно указывать вместе с параметром YYYYMMDDHH24MISS, непосредственно после метки времени (если метка отсутствует, их можно использовать без неё). В следующем примере обратите внимание на отсутствие запятых между последними четырьмя словами:

FormatTime, OutputVar, 20040228 LSys D1 D4
R: Обратный порядок. Поместить дату перед временем (имеет смысл только при пустом параметре Format).

Ln: Если эта опция отсутствует, используется локаль текущего пользователя. Чтобы использовать системную локаль, укажите LSys. Чтобы использовать какую-либо конкретную локаль, укажите букву L и сразу за ней шестнадцатеричный или десятичный идентификатор локали (LCID). Информацию о том, как получить LCID,ищите на www.microsoft.com по фразе Locale Identifiers.

Dn: Опции для даты. Поставьте вместо n одно из следующих чисел:
  • 0: Использовать опции по умолчанию. Это также приведёт к использованию короткой даты.
  • 1: Использовать короткую дату (имеет смысл только при пустом параметре Format; несовместимо с 2 и 8).
  • 2: Использовать длинную дату (имеет смысл только при пустом параметре Format; несовместимо с 1 и 8).
  • 4: Использовать альтернативный календарь (если есть).
  • 8: Использовать формат Year-Month (имеет смысл только при пустом параметре Format; несовместимо с 1 и 2). Требует Windows 2000 или более позднюю.
  • 0x10: Добавить метки для чтения слева направо. Требует Windows 2000 или более позднюю.
  • 0x20: Добавить метки для чтения справа налево. Требует Windows 2000 или более позднюю.
  • 0x80000000: Использовать системный формат даты по умолчанию, игнорируя настройки пользователя.
  • 0x40000000: Использовать для конвертации строк системную кодовую страницу ANSI вместо кодовой страницы локали.
Tn: Опции для времени. Поставьте вместо n одно из следующих чисел:
  • 0: Использовать опции по умолчанию. Это также приведёт к показу минут и секунд.
  • 1: Опустить минуты и секунды.
  • 2: Опустить секунды.
  • 4: Опустить маркёр времени (например, AM/PM).
  • 8: Всегда использовать 24-часовой формат.
  • 12: Комбинация двух предыдущих опций.
  • 0x80000000: Использовать системный формат времени по умолчанию, игнорируя настройки пользователя.
  • 0x40000000: Использовать для конвертации строк системную кодовую страницу ANSI вместо кодовой страницы локали.

Замечание: Dn и Tn можно повторять, чтобы задействовать более одной опции, как в этом примере: FormatTime, OutputVar, 20040228 D2 D4 T1 T8

Примечания

Буквы и числа, которые должны перейти из Format в OutputVar без изменений, нужно заключать в одиночные кавычки, как в этом примере: 'Дата:' MM/dd/yy 'Время:' hh:mm:ss tt

Напротив, не буквенно-цифровые символы, такие как пробел, табуляция, перевод строки (`n), наклонная черта, двоеточие, запятая и другие знаки препинания не требуют заключения в кавычки. Исключением является сама одиночная кавычка: чтобы передать её литерально, поставьте четыре одиночных кавычки (''''), или только две, если она уже находится внутри внешней пары кавычек.

Если Format содержит элементы даты и времени вместе, они не должны идти вперемешку. Другими словами, строка должна делиться на две половины: времени и даты. Например, строка "hh yyyy mm" не приведёт к ожидаемому результату, поскольку элемент даты стоит между двумя элементами времени.

Если Format содержит число месяца (в формате d или dd), а за ним следует полное название месяца (MMMM), для месяца используется форма родительного падежа (если в языке есть такая форма).

Если Format содержит более 2000 знаков, OutputVar будет пустой.

Сложение и вычитание дат и времён может осуществляться через EnvAdd и EnvSub.

Как можно конвертировать в обратном направлении, т.е. из форматированной даты/времени в формат YYYYMMDDHH24MISS, смотрите здесь: www.autohotkey.com/forum/topic20405.htmlphp

Примеры

FormatTime, TimeString MsgBox Текущие время и дата (сначала время): %TimeString% FormatTime, TimeString, R MsgBox Текущие время и дата (сначала дата): %TimeString% FormatTime, TimeString,, Time MsgBox Текущее время: %TimeString% FormatTime, TimeString, T12, Time MsgBox Текущее время в 24-часовом формате: %TimeString% FormatTime, TimeString,, LongDate MsgBox Текущая дата (длинный формат): %TimeString% FormatTime, TimeString, 20050423220133, dddd MMMM d, yyyy hh:mm:ss tt MsgBox Указанные дата и время, после форматирования: %TimeString% FormatTime, TimeString, 200504, 'Месяц': MMMM`n'День': dddd MsgBox %TimeString% FormatTime, YearWeek, 20050101, YWeek MsgBox 1 января 2005 находится в неделе номер %YearWeek% ; Узнать время изменения файла. FileSelectFile, FileName, 3,, Выберите файл if FileName = ; Файл не был выбран. return FileGetTime, FileTime, %FileName% FormatTime, FileTime, %FileTime% ; Поскольку последний параметр опущен, ; используются длинные дата и время. MsgBox Выбранный файл последний раз был изменён %FileTime% ; Следующая ниже функция преобразует заданное число секунд в часы, минуты ; и секунды (формат hh:mm:ss). MsgBox % FormatSeconds(7384) ; 7384 = 2 часа + 3 минуты + 4 секунды. ; Это даёт 2:03:04. FormatSeconds(NumberOfSeconds) ; Преобразует заданное число секунд ; к формату hh:mm:ss. { time = 19990101 ; Полночь произвольной даты. time += %NumberOfSeconds%, seconds FormatTime, mmss, %time%, mm:ss return NumberOfSeconds//3600 ":" mmss ; Такой метод используется для ; поддержки случаев, когда количество ; секунд превышает 24 часа. }
Теги страницы: