FormatTime

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

FormatTime, OutputVar , YYYYMMDDHH24MISS, Format

매개변수

OutputVar

The name of the output variable in which to store the result.

YYYYMMDD...

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

Format

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

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

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

Format 설명
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 현재 사용자의 로케일에 대한 시대 문자열 (없으면 비어 있음)

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

Format 설명
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 (로케일에 따라 다름)

Standalone Formats

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

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에 다음 숫자 중 하나를 지정하십시오:

Tn: 시간 옵션. n에 다음 숫자 중 하나를 지정하십시오:

주의: 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 콘트롤, Format(), SetFormat, Transform, 내장된 날짜 변수와 시간 변수, FileGetTime

예제

Demonstrates different usages.

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
    */
}