掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
言語環境に依存しない日付型への変換方法は? (ID:86763)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
》 nanashiさん > そんなエスケープが必要とは知りませんでした(^^; ついでに、このあたりも。 [文字列からDate型への変換に注意する] http://www.gj.il24.net/~nakasima/vb/trap/index.htm#VBTRAP19 》 ひなさん > 例 s = Format(Date, "2004\/11\/19")だと > sの値は 238310/11/19 になります。 ついでに、上記の間違いコードの動作についても解説を。 1. Format関数は、第1引数に指定された値を、第2引数の書式で変換する関数です。 この場合、数値指定書式文字(0)が最初に現れたため、第一引数が数値として 認識されます。 2. Date関数の戻り値は日付型ですが、内部的には1899/12/30からの経過日数を 表したDouble型の値となっています。例えば本日(2004/11/19)の場合、 「CDbl(Date())」は「38310.000」になります。 3. 今回の指定では、s = "2" & Format(Date, "00") & "4/11/19" の 意味になります。結果として、『238310/11/19』が出力されます。 数値指定書式、文字列指定書式、日付指定書式の違いについては、 ヘルプで Format 関数の関連項目を参照してください。 ======= Debug.Print Format(Now(), "0000000.0000 yyyy mm dd") Debug.Print Format(Now(), "yyyy mm dd 0000000.0000") ======= この場合、前者は「0038310.〜〜 yyyy mm dd」となりますが、 後者の場合には、「2004 11 19 0000000.0000」となります。 ついでに書くと、"/" を "\/" とエスケープする必要があるのは、 yyyy や mm などの「日付指定書式文字」を利用している場合です。 s = Format(Date, "2004\/11\/19") の場合は、「数値指定書式」なので、 s = Format(Date, "2004/11/19") と書いても、同じ結果になります。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.