FormatTime

YYYYMMDDHH24MISS形式のタイムスタンプを指定された日付/時刻形式に変換します。

String := FormatTime(YYYYMMDDHH24MISS, Format)

パラメータ

YYYYMMDDHH24MISS

型:文字列

空白または省略された場合、現在のローカルタイムがデフォルトとなります。それ以外の場合は、YYYYMMDDHH24MISS形式のタイムスタンプの全部または先頭部分を指定します。

Format

型:文字列

省略されたときは、デフォルトで時刻の後に長い形式の日付が続き、両方とも現在のユーザーのロケールに従ってフォーマットされます。事例:4:55 PM Saturday, November 27, 2004

それ以外の場合は、以下の表から1つ以上の日付時刻形式を指定し、その間にリテラルスペースと句読点を入れる(カンマはエスケープする必要はなく、通常通り使用できる)。以下の例では、Mは必ず大文字にすることに注意してください:M/d/yyyy h:mm tt

戻り値

型:文字列

説明: 指定されたタイムスタンプを変換したものを返す。

YYYYMMDDHH24MISSに無効な日付・時刻部分(うるう年の2月29日など)が含まれる場合、その日付・時刻は戻り値から除外されます。1601年から9999年までの年号のみがサポートされていますが、時刻部分が有効である限り、それ以前の年号でもフォーマットされた時刻を作成することができます。

Formatが2000文字以上の場合は、空文字列を返します。

日付の形式(大文字・小文字は区別されます。)

Format 説明
d 日付(先頭のゼロなし)(1~31)
dd 日付(先頭のゼロあり)(01~31)
ddd 現在のユーザーの言語における曜日の略称(例:月)。
dddd 現在のユーザーの言語での曜日(例:月曜日)を表すフルネーム
M 月(先頭のゼロなし)(1~12)
MM 月(先頭のゼロなし)(01~12)
MMM 現在のユーザーの言語での月名の略称(例:1)
MMMM 現在のユーザーの言語での完全な月名(例:1月)。
y 西暦(下2桁の先頭ゼロなし)(0~99)
yy 西暦(下2桁の先頭ゼロあり)(00~99)
yyyy 西暦(4桁)事例:2005
gg 現在のユーザーのロケールに対応する時代・年代の文字列(ない場合は空白)

時刻の形式(大文字・小文字は区別されます)

Format 説明
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などの1文字の午前午後を表す記号(ロケールによります)
tt AMやPMなどの長い午前午後を表す記号(ロケールによります)

スタンドアロン型フォーマット

以下のフォーマットは単独で使用する必要があります。つまり、Formatパラメータに他のフォーマットやテキストが存在しない状態で使用します。これらのフォーマットは、大文字と小文字は区別されません。

Format 説明
(Blank) Formatを空白にすると、時刻の後に長い日付が表示されます。例えば、ある地域では2004年11月27日(土)午後4時55分と表示されるでしょう。
Time 現在のユーザーのロケールでの時間表現(例:5:26 PM)
ShortDate 現在のユーザーのロケールに対応した短い日付表現(例:02/29/04)
LongDate 現在のユーザーのロケールに対応した長い日付表現(例:Friday, April 23, 2004)
YearMonth 現在のユーザーのロケールに合わせた年・月のフォーマット(例:February, 2004)
YDay 1年のうち何日目かを表す日(先頭のゼロなし)(1~366)
YDay0 1年のうち何日目かを表す日(先頭のゼロあり)(001~366)
WDay 1週間のうち何日目かを表す日(1~7)です。日曜日が1です。
YWeek ISO 8601の完全な年号と週番号を示します。事例:200453. 新年1月1日を含む週が4日以上ある場合は、第1週とします。それ以外は前年の最終週となり、次週は第1週となります。その結果、1月4日と1月第1木曜日は、いずれも必ず第1週になります。

追加オプション

YYYYMMDDHH24MISSパラメータ内では、タイムスタンプの直後に以下のオプションを表示することができます(タイムスタンプがない場合は、これらのオプションのみを使用することができます)。次の例では、最後の4つの項目の間にコンマがないことに注意してください:

OutputVar := FormatTime("20040228 LSys D1 D4")

R: Reverse. 日付が時間の前に来るようにする(Formatが空白のときのみ意味があります)。

Ln: If this option is not present, the current user's locale is used to format the string. 代わりにシステムのロケールを使用する場合は、LSysを指定します。特定のロケールを使用する場合は、文字Lの後に16進数または10進数のロケール識別子(LCID)を指定してください。LCIDの構築方法については、www.microsoft.com、以下のフレーズで検索してください:Locale Identifiers

Dn: Date options. nには、次のいずれかの数字を指定する:

Tn: Time options. nには、次のいずれかの数字を指定する:

Note: Dn and Tn may be repeated to put more than one option into effect, such as this example:FormatTime("20040228 D2 D4 T1 T8")

備考

Formatから最終的な文字列に文字通りに転写したい文字や数字は、この例のようにシングルクォートで囲む必要があります:"'Date:' MM/dd/yy 'Time:' hh:mm:ss tt".

一方、スペース、タブ、ラインフィード(`n)、スラッシュ、コロン、カンマ、その他の句読点などの非英数字は、シングルクォートで囲む必要はない。ただし、シングルクォート文字そのものは例外です:を文字通りに表示するには、4つの連続した単一引用符(''')を使用します(引用符がすでに外側の引用符のペアの中にある場合は2つだけ)。

Formatが日付と時刻の要素を一緒に含む場合、両者を混在させてはならない。つまり、文字列は2つに分割できることが望ましいのです:時間半分、日付半分。例えば、"hh yyyy mm"で構成されるフォーマット文字列は、2つの時間要素の間に日付要素があるため、期待した結果を得ることはできません。

Formatに数値の月日(dまたはdd)の後に完全な月名(MMMM)が含まれる場合、月名の主格が使用される(言語に主格がある場合)。

これに関連して、日時の加算、減算、比較はDateAdd関数と DateDiff関数で行うことができます。

逆方向の変換、つまり、フォーマットされた日付/時刻から YYYYMMDDHH24MISS フォーマットへの変換は、www.autohotkey.com/forum/topic20405.htmlをご覧ください。

こちらもご覧ください:Gui DateTime control, Format, built-in date and time variables, FileGetTime

さまざまな使い方を実演します。

TimeString := FormatTime()
MsgBox "The current time and date (time first) is " TimeString

TimeString := FormatTime("R")
MsgBox "The current time and date (date first) is " TimeString

TimeString := FormatTime(, "Time")
MsgBox "The current time is " TimeString

TimeString := FormatTime("T12", "Time")
MsgBox "The current 24-hour time is " TimeString

TimeString := FormatTime(, "LongDate")
MsgBox "The current date (long format) is " TimeString

TimeString := FormatTime(20050423220133, "dddd MMMM d, yyyy hh:mm:ss tt")
MsgBox "The specified date and time, when formatted, is " TimeString

MsgBox FormatTime(200504, "'Month Name':MMMM`n'Day Name':dddd")

YearWeek := FormatTime(20050101, "YWeek")
MsgBox "January 1st of 2005 is in the following ISO year and week number:"年 週間

ファイルの日付・タイムスタンプを変更します。

FileName := FileSelect(3,, "Pick a file")
if FileName = "" ; The user didn't pick a file.
    return
FileTime := FileGetTime(FileName)
FileTime := FormatTime(FileTime)   ; Since the last parameter is omitted, the long date and time are retrieved.
MsgBox "The selected file was last modified at " FileTime

指定された秒数を、対応する時・分・秒数(hh:mm:ss形式)に変換します。

MsgBox FormatSeconds(7384)  ; 7384 = 2 hours + 3 minutes + 4 seconds. It yields:2:03:04

FormatSeconds(NumberOfSeconds)  ; Convert the specified number of seconds to hh:mm:ss format.
{
    time := 19990101  ; *Midnight* of an arbitrary date.
    time := DateAdd(time, NumberOfSeconds, "Seconds")
    return NumberOfSeconds//3600 ":" FormatTime(time, "mm:ss")
    /*
    ; 上記の方法とは異なり、24時間に相当する分以上の秒数をサポートすることはできません:
return FormatTime(time, "h:mm:ss")
    */
}