パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

接触確認アプリCOCOA、地域ごとの日付フォーマットの違いで利用日数が狂う新たな不具合」記事へのコメント

  • by Anonymous Coward

    日本国内だけで利用されるから、タイムゾーン決め打ちで自前の時刻処理を使ってるんだね

    • by Anonymous Coward

      今回のはいわゆるタイムゾーンのせいではない。逆に自前処理だったら問題は小さかった。
      変数の値をファイル保存/読み込み処理を、何も考えずに開発言語の標準ライブラリにお任せしたからこんな問題が起きた。
      変数の値を自前でファイル保存してればいわゆるタイムゾーンの問題(時差で多少狂う程度の小さな問題)だけで済んだ。

      #極論を言えばxamarinのせい!w

      • by Anonymous Coward

        それがホントならxamarin何やってんのって感じだな

        • Re: (スコア:3, 興味深い)

          by Anonymous Coward

          いや、ロケールをデフォルト(実行環境依存)にしていたから起きるわけで、プログラマの責任だよ
          今は発生する場面がなさそうだけど、小数点(カンマとドット)も同じ問題を孕んでる

          全部 ISO 基準にしろよ、と思うかもしれないが、出力結果がどう使われるかは設計次第なわけで、人が読むテキストなのか機械が読むテキストなのかを区別するのはプログラマの責任
          人が読むテキストなら、現地環境で可読性の高い現地ロケールで出力されて欲しいからね

          • by Anonymous Coward

            Dateをシリアライズして保存するのにロケールに依存する必要なんかなくないか?
            「保存用の保存」してロケールに依存しちゃうんじゃxamarinおかしいっしょ
            「表示用の文字列化して保存、読み込んだ後Dateに変換」してるんだったらプログラマがおかしいけど。

            > Ver.1.2.2で混入したものとみられている。
            らしいから、バイナリだった保存を「読めたほうが良いか!」と文字列化/復元に変えてやっちゃった、とかかなぁ

            • by Anonymous Coward on 2021年03月16日 6時47分 (#3994828)

              シリアライズ値でロケールに依存しないっていうと、UNIXエポック時間なんかがいいのかな

              シリアライズ元のDate自体がロケールに依存してないのかな。サマータイムとか
              依存してたらプログラム上は表示以外はずっとUNIXエポックのまま扱わない限り問題起きそう

              親コメント
              • by Anonymous Coward

                Unix timeで扱うとバグを生むからこういうライブラリがあるのよ

              • by Anonymous Coward
                まあC#なら標準ライブラリのDateTimeOffset.ToUnixTimeSeconds()/FromUnixTimeSeconds()呼ぶだけですけどね

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

処理中...