1日の開始時刻と終了時刻を表す方法は?
例として2008年10月23日を使用すると、2008年10月23日午前12:00:00に開始し、2008年10月23日午後11時59分59秒に終了しますか?
1日の開始時刻と終了時刻を表す方法は?
例として2008年10月23日を使用すると、2008年10月23日午前12:00:00に開始し、2008年10月23日午後11時59分59秒に終了しますか?
http://www.cl.cam.ac.uk/~mgk25/iso-time.htmlというサイトを引用したいと思います。
時刻の国際標準表記は次のとおりです。
hh:mm:ss
ここで、hhは午前0時(00〜24)から経過した完全な時間数、mmは時間の開始(00〜59)から経過した完全な分数、ssはからの完全な秒数です。分の始まり(00-60)。時間の値が24の場合、分と秒の値はゼロでなければなりません。
注:ssの値60は、協定世界時(UTC)のような原子時スケールで挿入されたうるう秒の間に必要になる場合があります。パリの国際地球回転サービスによって発表されたように、23:59:60のうるう秒が数年ごとにUTCタイムスケールに挿入され、UTCが一定ではない天文タイムスケールUT1から0.9秒以上離れないようにします。地球の実際の回転によって定義されます。実際には、23:59:60を示す時計が表示される可能性はほとんどありません。ほとんどの同期クロックは、うるう秒が発生した後しばらくしてUTCに再同期するか、うるう秒の時間の近くで一時的に減速して、範囲外のタイムスタンプが原因で発生する可能性のある中断を回避します。
例の時間は
23:59:59
これは、真夜中の1秒前の時間を表します。
日付表記と同様に、区切りコロンも省略できます。
235959
また、秒または秒と分の両方を省略すると、精度を下げることができます。
23:59, 2359, or 23
小数のドットまたはコンマの後に秒の小数部を追加することもできます。たとえば、真夜中の5.8ミリ秒前の時間は次のように記述できます。
23:59:59.9942 or 235959.9942
毎日が深夜に開始および終了するため、1つの日付に関連付けることができる2つの深夜を区別するために、2つの表記00:00と24:00を使用できます。これは、次の2つの表記がまったく同じ時点を参照していることを意味します。
1995-02-04 24:00 = 1995-02-05 00:00
時間の明確な表現が必要な場合は、通常、24:00ではなく深夜の表記として00:00が推奨されます。デジタル時計は24:00ではなく00:00を表示します。
ISO 8601は、その表記が特定の時点を指定するか期間を指定するかを指定しません。これは、たとえば、ISO 8601が、09:00がその日の9時間の正確な終わりを指すのか、09:00から09:01までの期間を指すのかなどを定義しないことを意味します。標準のユーザーは、これが懸念される場合は、時間表記の正確な解釈に何らかの形で同意する必要があります。
日付と時刻が同じ行に表示されている場合は、常に時刻の前に日付を記入してください。日付と時刻の値が単一のデータフィールドに一緒に格納されている場合、ISO 8601は、19951231T235959のように、それらをラテン大文字のTで区切る必要があることを示しています。
米国からの読者へのコメント:
ここで指定されている24時間表記は、何十年もの間、世界中ですでに書記言語のデファクトスタンダードとなっています。唯一の例外は、英語を話すいくつかの国です。ここでは、1〜12時間の表記と、「am」や「pm」などの追加が広く使用されています。一般的な24時間の国際標準表記は、現在イギリスでも広く使用されています(空港、映画館、バス/電車の時刻表など)。他のほとんどの言語には「am」や「pm」などの略語すらありません。12時間表記は、大陸ヨーロッパで時刻を書き込んだり表示したりするために使用されることはほとんどありません。米国でも、軍隊とコンピューターのプログラマーは長い間24時間表記を使用してきました。
古い英語の12時間表記には、次のような多くの欠点があります。
ローマ数字が使用され、数字のゼロはまだ発明されておらず、アナログ時計が時間を表示する唯一の既知の形式であった暗黒時代の遺物であると考えてください。特に技術的なアプリケーションでは、今日は使用しないでください。米国でも、広く尊敬されているシカゴマニュアルオブスタイルは、現在、出版物で国際標準時の表記法を使用することを推奨しています。
確かに、単に 1 日を表したい場合は、時間を含める必要はまったくありません。特に、これにより、1 日がいつ開始または終了するかについて、そのようなレベルの議論が発生するためです。私の経験では、通常、日付の処理は十分に複雑であり、余分な複雑さはありません。
今日は 2008 年 10 月 20 日です。これ以上の情報は必要ありません。
または、何か不足していますか?
10 月 23 日は 2008 年 10 月 23 日の午前 12 時に始まり、2008 年 10 月 24 日の午前 12 時に終わります。最後の 1 秒は午後 11 時 59 分 59 秒に始まりますが、1 日が終わるまでにはまだ 1 秒あります。
それはあなたが一日で何を意味するかによります。悲しいことに、日付の処理は見た目よりも常に複雑です。
例を24時間ISO日付形式に変換するには、次のように言います。
2008-10-23 00:00:00 - 2008-10-23 23:59:59
ただし、範囲を包括的と解釈するか排他的と解釈するかによって、その日の最後の1秒を省略できる場合があります*。プログラマーは通常、上限を排他的に保つことを好むので、次のことを行います。
2008-10-23 00:00:00 - 2008-10-24 00:00:00
または、サポートされている場合(または人間が読みやすいようにするため)、同じことを示すための少し良い方法として:
2008-10-23 00:00:00 - 2008-10-23 24:00:00
*:実際には複数ある可能性があります。スパンがUTCタイムゾーン(またはそれに合わせた別のタイムゾーンである可能性が非常に高い)の1日を表す場合、1日の終わりの23:59:60に、意味のない余分な「うるう秒」が発生することがあります。 UTCを恒星時と一致させようとします。次のうるう秒は、今年の終わりに予定されています。ただし、多くのシステムはうるう秒を無視します。これは、うるう秒がばかげて煩わしいためです。
タイムゾーンに関係なく「暦日」を表したい場合は、ユリウス日番号が最善の策です。今日は2454760です。
あなたの表記は奇妙です。1日の範囲を指定する標準的な方法は、次のとおりです。
2008-10-2300:00:00そして終了2008-10-2323:59:59
質問で言及する日の定義は、> =2008-10-2300:00:00および<2008-10-2400:00:00である任意の時間です。
数学的な間隔表記を使用する場合は、次のように記述します。
[2008-10-23 00:00:00、2008-10-24 00:00:00)
[は含むことを意味し、)は含むが含まないことを意味します。
このようにして、ユーザーにとっても自分自身にとっても簡単になります。