FormatTime

시간도장 YYYYMMDDHH24MISS를 지정된 날짜/시간 형식으로 변환합니다.

FormatTime, OutputVar [, YYYYMMDDHH24MISS, Format]
선택

매개변수

OutputVar

결과를 저장할 변수의 이름.

YYYYMMDD...

이 매개변수를 비워 두면 현재 날짜와 시간을 사용할 수 있습니다. 그렇지 않으면, YYYYMMDDHH24MISS 형식으로 시간도장의 이끄는 부분을 모두 지정하십시오. 시간 도장의 날짜/시간 부분이 유효하지 않다면 -- 윤년이 아닌 해에 2월 29일이라면 -- 그 날짜와 시간은 OutputVar으로부터 제외됩니다. 1601년부터 9999년 까지만 지원합니다. 형식화된 시간은 시간 부분이 유효하기만 하다면 여전히 이전 해에 대하여 만들 수 있습니다.

Format

생략되면, 시간 다음에 긴 날짜가 기본값이 됩니다. 둘 모두 현재 사용자의 로케일에 맞게 포맷됩니다. 예를 들어: 4:55 PM Saturday, November 27, 2004

그렇지 않으면, 아래의 하나 이상의 날짜-시간 형식을 사이에 글자 그대로의 스페이스와 구두점 부호를 두고 지정하십시오. (쉼표는 피신시킬 필요가 없습니다; 보통 그대로 사용할 수 있습니다). 다음 예제에서, M을 대문자로 사용해야 한다는 점에 주의하십시오: M/d/yyyy h:mm tt

날짜 형식 (대소문자 구분)

d 앞에 0 없이 달의 날짜 (1 - 31)
dd 앞에 0을 두고 달의 날짜 (01 – 31)
ddd 현재 사용자의 언어로 주의 날짜의 짧은 이름 (예, Mon)
dddd 현재 사용자의 언어로 주의 날짜의 완전한 이름 (예, Monday)
M 앞에 0없이 달 (1 – 12)
MM 앞에 0을 두고 달 (01 – 12)
MMM 현재 사용자의 언어로 달의 짧은 이름 (예, Jan)
MMMM 현재 사용자의 언어로 완전한 달 이름 (예, January)
y 세기 없는 해, 앞에 0 없음 (0 – 99)
yy 세기 없는 해, 앞에 0 있음 (00 - 99)
yyyy 세기 있는 해. 예를 들어: 2005
gg 현재 사용자의 로케일에 대한 시대 문자열 (없으면 비어 있음)

시간 형식 (대소문자 구분)

h 앞에 0 없이 시각; 12-시간제 형식 (1 - 12)
hh 앞에 0 있는 시각; 12-시간제 형식 (01 – 12)
H 앞에 0 없는 시각; 24-시간제 형식 (0 - 23)
HH 앞에 0 있는 시각; 24-시간제 형식 (00– 23)
m 앞에 0 없는 분 (0 – 59)
mm 앞에 0 있는 분 (00 – 59)
s 앞에 0 없는 초 (0 – 59)
ss 앞에 0 있는 초 (00 – 59)
t 한 개짜리 시간 표식자, 예를 들어 A 또는 P (로케일에 따라 다름)
tt 다중-문자 시간 표식자, 예를 들어 AM 또는 PM (로케일에 따라 다름)

다음 형식은 반드시 홀로 사용되어야 합니다; 즉, 다른 형식이나 텍스트가 Format 매개변수에 없습니다. 이 형식은 대소문자를 구별하지 않습니다.

(Blank) Format을 비워 두면 시간과 그리고 다음에 기다란 날짜를 생산합니다. 예를 들어, 어떤 로케일에서는 4:55 PM Saturday, November 27, 2004로 나타날 수 있습니다.
Time 현재 사용자의 로케일에 대한 시간 표현, 예를 들어 5:26 PM
ShortDate 현재 사용자의 로케일에 대한 짧은 날짜 표현, 예를 들어 02/29/04
LongDate 현재 사용자의 로케일에 대한 긴 날짜 표현, 예를 들어 Friday, April 23, 2004
YearMonth 현재 사용자의 로케일에 대한 해와 달, 예를 들어 February, 2004
YDay 앞에 0 없이 해의 날짜 (1 – 366)
YDay0 앞에 0 이 있는 해의 날짜 (001 – 366)
WDay 주의 날짜 (1 – 7). Sunday는 1입니다.
YWeek ISO 8601 완전 해의 개수 그리고 주 개수 : 200453. 1월 1일을 포함한 주가 새 해에서 4 일 이상 포함되어 있으면, 첫 번째 주로 간주됩니다. 그렇지 않으면, 이전 해의 마지막 주로 간주됩니다. 그리고 그 다음 주가 새 해의 첫 주가 됩니다. 결론적으로, 1월 4일과 1월의 첫 번째 목요일은 언제나 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: 해-달 형식을 사용합니다 (Format이 비어 있을 경우에만 의미가 있습니다; 1과 2에는 호환성이 없습니다).
0x10: 좌에서 우로 읽기 순서 레이아웃을 위한 표식을 추가합니다.
0x20: 우에서 좌로 읽기 순서 레이아웃을 위한 표식을 추가합니다.
0x80000000: 사용자가 시스템의 기본 날짜 형식에 대하여 변경해서 오버라이드 하는 것들을 준수하지 않습니다.
0x40000000: 문자열 변환에 로케일의 코드 페이지 대신에 시스템 ANSI 코드 페이지를 사용합니다.

Tn: 시간 옵션. n에 다음 숫자 중 하나를 지정합니다:
0: 기본 옵션을 사용하도록 강제합니다. 이는 또한 분과 초가 보이도록 만듭니다.
1: 분과 초를 생략합니다.
2: 초를 생략합니다.
4: 시간 표식을 생략합니다 (예, AM/PM).
8: 12-시간제가 아니라 언제나 24-시간제를 사용합니다.
12: 위의 두 옵션을 조합.
0x80000000: 사용자가 시스템의 기본 날짜 형식에 가한 변경을 준수하지 않습니다.
0x40000000: 문자열 변환에 로케일의 코드 페이지 대신 시스템 ANSI 코드 페이지를 사용합니다.

주의: Dn과 Tn은 여러 옵션 효과를 위해 반복할 수 있습니다. 예를 들어 다음 예제와 같이: FormatTime, OutputVar, 20040228 D2 D4 T1 T8

논평

기호와 숫자를 글자 그대로 Format으로부터 OutputVar로 변환하고 싶다면 홑따옴표로 다음 예제와 같이 둘러야 합니다: 'Date:' MM/dd/yy 'Time:' 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

다음도 참조하십시오: Gui DateTime 콘트롤, SetFormat, Transform, 내장된 날짜 변수와 시간 변수, FileGetTime

예제

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, 'Month Name': MMMM`n'Day Name': dddd
MsgBox %TimeString%

FormatTime, YearWeek, 20050101, YWeek
MsgBox 2005년 1월 1일의 ISO 년도와 주 번호는 다음과 같습니다: %YearWeek%
선택 | 내려받기
; 파일의 날짜-시간 도장을 바꿉니다:
FileSelectFile, FileName, 3,, Pick a file
if FileName =  ; 사용자가 파일을 고르지 않았습니다.
    return
FileGetTime, FileTime, %FileName%
FormatTime, FileTime, %FileTime%   ; 마지막 매개변수가 생략되었기 때문에, 긴 날짜와 시간이 열람됩니다.
MsgBox 선택된 파일은 %FileTime%에 마지막으로 변경되었습니다.
선택 | 내려받기
; 다음 함수는 지정된 개수의 초를
; 상응하는 시간, 분, 그리고 초로 변환합니다 (hh:mm:ss 형식).

MsgBox % FormatSeconds(7384)  ; 7384 = 2 hours + 3 minutes + 4 seconds. 결과: 2:03:04

FormatSeconds(NumberOfSeconds)  ; 지정된 개수의 초를  hh:mm:ss 형식으로 변환합니다.
{
    time = 19990101  ; 임의의 날짜의 *자정*.
    time += %NumberOfSeconds%, seconds
    FormatTime, mmss, %time%, mm:ss
    return NumberOfSeconds//3600 ":" mmss
    /*
    ; 위에 사용된 방법과 다르게, 이 방법은 24 시간이 넘는 초의 개수를 지원하지 않습니다:
    FormatTime, hmmss, %time%, h:mm:ss
    return hmmss
    */
}
선택 | 내려받기