Перейти на главную страничку сайта (список статей, файлы для скачивания)
Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.
Оригинал статьи в AutoHotkey.chm: "FormatTime", в содержании - "String Menagement" - "FormatTime", v1.0.48.03.
Ник переводчика: YMP.
Настоящее имя переводчика: Юрий Попов.
Преобразует метку времени формата 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 пустым, чтобы получить время, за которым следует длинная дата. Например, 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 D4R: Обратный порядок. Поместить дату перед временем (имеет смысл только при пустом параметре Format).
Замечание: 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.html
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 часа.
}
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.