質問

1日の開始時刻と終了時刻を表す方法

例として2008年10月23日を使用すると、2008-10-23 12:00:00 AMから2008-10-23 11:59:59 PMまでですか?

役に立ちましたか?

解決

あなたの表記は奇妙です。全日範囲を指定する標準的な方法は次のとおりです。

2008-10-23 00:00:00および終了2008-10-23 23:59:59

他のヒント

サイトを引用したい http:// www .cl.cam.ac.uk /〜mgk25 / iso-time.html

時刻の国際標準表記は

です
hh:mm:ss

ここで、hhは深夜(00〜24)から経過した完全な時間数、mmは時間の開始(00〜59)から経過した完全な分数、ssは分(00〜60)の開始からの完全な秒。時間の値が24の場合、分と秒の値はゼロでなければなりません。

注:協定世界時(UTC)のような原子時間スケールでうるう秒を挿入するときに、ssの値60が必要になる場合があります。パリの国際地球回転局が発表したように、UTCタイムスケールに1秒のap秒23:59:60が数年ごとに挿入されます。地球の実際の自転によって定義されます。実際には、23:59:60を示す時計が表示されることはほとんどありません。ほとんどの同期クロックは、うるう秒が発生した後しばらくして再びUTCに再同期するか、範囲外のタイムスタンプが原因で発生する可能性のある混乱を回避するために、うるう秒の時間近くに一時的に遅くなります。

例の時間は次のとおりです

23:59:59

真夜中の1秒前の時刻を表します。

日付表記と同様に、区切りコロンも省略できます

235959

そして秒を省略するか、秒と分を省略することで精度を下げることができます

23:59, 2359, or 23

小数点またはカンマの後に秒の小数部を追加することもできます。たとえば、深夜5.8 msの前の時間は、次のように記述できます

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

時間の明確な表現が必要な場合、通常、00:00は24:00ではなく深夜の優先表記です。デジタル時計は24:00ではなく00:00を表示します。

ISO 8601は、その表記が特定の時点または期間を指定するかどうかを指定しません。これは、たとえば、ISO 8601が09:00が1日の9時間の終わりを指すのか、09:00から09:01までの期間を指すのかなどを定義しないことを意味します。標準のユーザーは、何らかの懸念がある場合は、時間表記の正確な解釈に何らかの形で同意する必要があります。

日付と時刻が同じ行に表示される場合は、常に時刻の前に日付を書きます。日付と時刻の値が1つのデータフィールドに一緒に格納されている場合、ISO 8601は、19951231T235959のように、ラテン大文字のTで区切ることを提案しています。

米国の読者へのコメント:

ここで指定された24時間表記は、すでに数十年の間、書かれた言語の事実上の標準となっています。唯一の例外は、英語を話すいくつかの国です。1〜12時間の表記と、“ a.m。”および“ p.m。”広く使用されています。現在、イギリスでも一般的な24時間の国際標準表記が広く使用されています(空港、映画館、バス/電車の時刻表など)。他のほとんどの言語には、“ a.m。”のような略語さえありません。および“ p.m。”大陸のヨーロッパでは、時間を記述または表示するために12h表記はほとんど使用されていません。アメリカでも、軍やコンピューターのプログラマーは長い間24時間表記を使用しています。

古い英語の12h表記には、次のような多くの欠点があります:

  • 通常の24時間表記よりも長い。
  • 人間が2回比較するのに少し時間がかかる

確かに、1日だけを表したい場合は、時間を含める必要はまったくありません。特に、1日の開始または終了に関する議論のレベルが上がるためです。私の経験では、日付の処理は通常、複雑さを増すことなく十分に複雑です。

今日は2008年10月20日です。これ以上の情報は不要です。

または何か不足していますか?

10月23は2008年10月23日の午前12時に始まり、2008年10月24日の午前12時に終わります。最後の1秒は午後11時59分59秒に始まりますが、日が終わる前にまだ1秒があります。

質問で言及する日の定義は、> = 2008-10-23 00:00:00および< 2008-10-24 00:00:00。

数学的な間隔表記を使用する場合、次のように記述します

  

[2008-10-23 00:00:00、2008-10-24 00:00:00)

[は含めることを意味し、は含めることを意味しますが、含めないことを意味します。

この方法により、ユーザーと自分自身にとって簡単になります。

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です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top