カナダでは、誰もが日付形式YYYY-MM-DD
に精通しています。ヨーロッパや南アフリカでは、DD-MM-YYYY
を好みます。 YYYY-MM-DD
の日付形式で混乱する南アフリカのユーザーがいます。この状況に対処する方法はありますか?
私はすべてに次のメソッド形式を使用することを考えていました:Feb 02, 2011
あいまいの部分は、数字で表されている場合に、日と月を区別するためのものです。
02/03は2月3日または3月2日を意味しますか?
nameを使用して、月の識別子を番号から変更することで、あいまいさを解消できます。あなたの質問に答えるには、Feb 02, 2011
のバリアントが良い解決策のようです。
2桁のみで年を書いている場合でも、年の数字には潜在的な問題がありますが、修正は簡単です(4を使用)。
いいえ普遍的に認識される日付形式はありません。
ISO 8601 日付形式の国際標準を定義します。そのため、それはおそらく最良の妥協案です。しかし、あなたが言うように、ユーザーは常にこのフォーマットを好むわけではありません。
唯一の正しい解決策は、国ごとに異なるフォーマットを提示することです。選択したプログラミング言語に重要なファンがいる場合、これを実現するための標準ライブラリがあることに気付くでしょう。
そのためにカルチャー情報を使用する必要があります。または、少なくともローカルの表示形式。
JavaScriptでは、 Date class にtoLocaleStringメソッドを使用できます。
C#の場合、 ToString を使用するときにフォーマット文字列を使用できます。
Googleをすばやく検索すると、選択した言語で文化を使用する方法が表示されます。
私はYYYY-MM-DDを使用します(常に4桁の年と2桁の月と日を書きます)。私の知る限り、YYYY-DD-MMはめったにありません。そのため、YYYY-MM-DD形式は、あいまいさが最も少ない形式であり、最終的にユーザーが理解するようになります。また、簡単なソートの利点も得られます。
各ユーザーに独自のロケールを提供できます。ロケールは、ローカルの設定に従って日付やその他の情報をレンダリングしますか?
多くの場合、ほとんどのフレームワークでロケールを設定し、I18nを使用できます。
一般的なケースでは、フォーマットと値の両方を指定する必要があります。これは、ありとあらゆる混乱を避ける唯一の方法です。たとえば、「2011-02-02(YYYY-MM-DD)」と発声できます。ただし、シンプルさと読みやすさは犠牲になりますので、対象読者を把握してください。
もちろん、「今後、すべての日付はYYYY-MM-DD ....の形式になります」と言うことができます。そうすると、後で表示される「2011-02-02」が明確になります。それはもっと口当たりがいいかもしれませんが、繰り返しますが、あなたの聴衆を知っています。
この提案はおそらく役に立たないでしょうが、ローマ数字で書かれた月を見てきました。確かに、2011年3月11日は11月11日か3月3日かもしれませんが、最初の解釈のほうが自然だと思います。
それはあなたが何をしているのか、入力をどの程度制御できるのか、そしてそれをどこかに保存しているのかに依存すると思いますか?
ストレージには、Mike Dunlaveyが提案したものを使用します。
YYYYMMDDHHMMSSの時間はUTCであり、あなたが与える理由により、私が選択できるときはいつでも私が行く方法です。選択肢がない場合は、ユーザーに選択させます。
彼はこれを答えとして残さなかったので、私は残します。
もう1つ:CCの有効期限を入力する方法の次のスクリーンショットを確認してください。 http://www.ubercart.org/files/credit_card_checkout.jpg
この例の素晴らしい点は、それがあなたを考えさせないことです。月の番号と名前の両方を使用します。入力に同様のものを使用することを検討します。月については、番号とローカライズされた名前の両方を含めます。年と日の場合は、数値のアップ/ダウンまたはコンボボックスを使用します。次に、カレンダーコントロールも気の利いたようです。
私が言ったように、それは依存します。ストレージの場合:データベースを使用している場合は、データベースが明確で明確なデータ形式を提供しているかどうかを確認します。他の方法を使用している場合は、「時がUTCであるYYYYMMDDHHMMSS」が役立つかどうかを確認してください。それをユーザーに提示するには、どの国やロケールが関係している可能性があるかを考慮して、最もわかりやすい「私に考えさせない」種類の表現を選びます。オプションの提供も検討してください。
最後に、すでに似たようなことをしているいくつかのクールな製品をチェックして、それらがどのようにそれを行うかを見つけてください。
Webサイトのエンドユーザーに共通の日付と時刻の形式はありません。値はクライアントのタイムゾーンごとに異なるため、単一の日付時刻値もありません。グローバリゼーションを使用する必要があります-ユーザーの文化に基づくデータ、時間、通貨、カレンダー、ナブマー形式のターゲティング(ユーザーのブラウザーから渡された承認済み言語から、またはアプリケーションに直接実装されたスイッチによって受信できます)。一部のAPI(.NETなど)は、この機能を直接サポートしています。
日付と時刻をデータベースに保存するには、ユニバーサル形式のUTC(協定世界時)を使用します。