[TIL]時間値の正しい格納フォーマットは何ですか?


アプリケーションやサービスにどのような形で時間値を格納するかを考えてみると、想像以上に空っぽであることがわかります.
最初から検索で表記法に対する誤解を解消すれば、これ以上悩むことはない.
秀静:私が書いた文章より質のいい文章があるので、共有します.
https://parksb.github.io/article/39.html
どうしてこんな悩みがあるの?
今、アプリケーションを作成するときに時間値をlong形式に保存するのは合理的かどうか疑問です.
そして基準があると思います.
私はどうして以前longを貯金していたのですか?
  • 文字列はより多くの記憶領域を必要とするため、
  • で時間を表現する方法は国によって違うと思いますが、それが問題になると思います->私は韓国で開発中なので韓国式のスケジュール技法を見ているので
  • Long対ですか、String対ですか.
    両方とも先に貯金できます.
    基本的にはStringで保存したほうがいいです
    数値で使うことが多い場合は、Long形式で保存できます.
    String時間の表現は国によって違いますか?標準的な方法があるのではないでしょうか.
    注意:ウィキペディアISO 8604
    ISO 8601による表記方法があります.
    大きい単位(年度)から小さい単位(秒)の順に並べます.
    # 표준 표기 방법
    2022-02-12T11:31:24.286Z
    マークの最後のZはどういう意味ですか?
    TIME ZONE値はZeroです.
    ISO 8601規格ではUTCのオフセットで表される.
    時間がUTCの場合、スペースを残さずに時間の後にZを直接追加する必要があります.
    Zはオフセットが0のUTCの領域インジケータである.
    したがって、「09:30 UTC」は「09:30 Z」または「0930 Z」と表現される.
    「14:45:15 UTC」は、「14:45:15 Z」または「144515 Z」であってもよい.
    では、タイムゾーンのマークによってどうすればいいですか?
    UTCにおけるオフセットは、上にZを貼り付けるのと同じように、±[hh]:[mm]、±[hh][mm]または±[hhhh]形式の時間後に加えられる.
    # Timezone이 고려된 형태 (한국)
    2022-02-12T11:31:24+09:00
    グローバルサービスを考慮する場合はoffsetではなくZとして格納することが望ましい.
    どのようにJSからISO標準時間値を取得しますか?
    ISO規格ではtoISOString手法を用いている.
    new Date().toISOString()
    console.log(new Date().toISOString())
    // 출력값: '2022-02-12T11:31:24.286Z'