2011-01-27 6 views
5

私はアプリケーションの標準を設定しています。使用するシステムのデフォルトの日付形式は何ですか?

私は、使用するデフォルトの日付形式は何ですか?

それは次のようになります。

  • 国際&タイムゾーンを認識し、フォーマットが
  • が効率的にSimpleDataFormat(または唯一問わず、JDKのクラス)で解析することができ、ユーザのローカル時間を表現することができるはず
  • プログラミング言語にとらわれない(java、python、神がC++を解析することができる)と共同)
  • 好ましくはISOベースまたは他の受け入れられた標準
  • 時間を秒単位で表すことができます(可能であれば、より正確にはより良い、マイクロ秒単位)。
  • 人間の読めるはプラスですが、
  • コンパクトはプラスですが、

は、
マキシムありがとうございまし必要はありません必要はありません。

+3

関連:http://stackoverflow.com/questions/2532729/daylight-saving-time-and-timezone-best-practices – BalusC

答えて

1

最も標準的な標準形式は、おそらく"Unix Time"次のとおりです。1月1日の深夜協定世界時(UTC)からの経過秒数、あなたが設定した場合、1970年

デフォルトの時間フォーマットとして使用すると、簡単にできること解析し、メモリに格納し、ディスクに書き出し、HTTPなどで簡単に通信することができます。また、それは間違いなく受け入れられた標準であり、ある意味ではタイムゾーンに関係なく明確に定義されているため、「タイムゾーンを認識」しています。

(これは私が常にすべての私のタイムスタンプを保存する形式であり、データベースで、メモリ内、ディスク上、...)

+0

はい、しかし、私はユーザーの現地時間を表現できるようにしたいと思います。だから私は形式でタイムゾーンを含める必要があります。この点についても私は質問を更新する予定です。 –

7

YYYY-MM-DDTHH:MMZ(ISO 8601を参照してください)あなたが追加することができます秒など

簡単に読むことができますが、SimpleDateFormatでは問題ありません。

1

"right" デフォルトのフォーマットは実際にあなたが何をしているかによって異なります。解析、保存、および表示の形式はすべて異なる場合があります。

日付を格納するために、ユーザーのローカルタイムで表示したい場合でも、aioobeのように(ほとんど)常にUTCを使用したいと考えています。私は「(ほぼ)」と言いますが、私はではないと思います。は保存された日付のUTCを希望します。 日付がどこに由来するのかについてのTZ情報も保存したいので、現地時間で報告することができますが、の現地時間を表示する場合は、現在となります。つまり、元の現地時間とは無関係に、現行のユーザーの現地時間を判断する方法があることを意味します。

これを表示するには、通常、「デフォルトの形式」は、ビューアのロケールによって決まります。 08/09/10は、通常、米国における2010年8月9日を意味します。(「Middle endian」)、通常は世界のほとんどの地域で2010年 - 9月-8日を意味します(「Little endian」)。 ISO-8601のフォーマット「2010-09-10」は安全で曖昧ではありませんが、しばしば人々が見たいものではありません。また、インターネット上の日付と時刻はRFC-3339、メッセージ形式はRFC-2822で見ることができます。

日付を解析するには、解析してUTCに変換する必要がありますが、あなたが受け入れるものに柔軟性があります。ここでも、エンドユーザーのLocaleとタイムゾーンが検出可能な場合は、入力として受け入れる文字列の形式を判別するのに役立ちます。これは、ユーザー型の文字列を前提としています。日付/時刻スタンプを生成している場合は、フォームを制御することができ、解析は問題ありません。

私も以前に見たことがなく、今好きだったBalusC linkです。

関連する問題