Нужна помощь в написании скрипта? Close

Вы можете задать любой вопрос по программе Autohotkey в нашей группе Вконтакте. Если решение требует более высокой квалификации- можно обратиться непосредственно ко мне.

ВконтактеГруппа Вконтакте Электронная почтаЭлектронная почта Личная страницаСимаков Яков ВК
home icon Все разделы
comunity icon Нужна помощь?

FormatTime -Autohotkey

Преобразует метку времени формата 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.
Shortdate Короткая дата в локали текущего пользователя, например, 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 одно из следующих чисел: Tn: Опции для времени. Поставьте вместо n одно из следующих чисел:

Замечание: 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 часа. }
Автор перевода: YMP
Настоящее имя переводчика: Юрий Попов
Источник: http://www.script-coding.com/AutoHotkey/FormatTime.html
Под редакцией ahk-wiki.ru от 21.08.19