アプリ版:「スタンプのみでお礼する」機能のリリースについて

C#にて、他言語にローカライズした場合に、日付の書式エラーが発生します。

ローカライズ後に、日付の書式が"dd/MM/yyyy"に切り替わってしまうため、
起動時に「System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = "yyyy/MM/dd";」を設定するようにしています。

ローカライズ前は日付入力「12/02」としたとき「DateTime.TryParse」にて「2010/12/02」と正しく変換されましたが、
ローカライズ後はエラーになって正しく変換されませんでした。

そこで、DateTime.TryParseExactにてフォーマットを"MM/dd"に指定しても、「2010/02/12」と月日が逆で設定されるようになってしまいました。

入力値「12/02」に対して、日付が「2010/12/02」と表示できるようにする方法を教えてください。

A 回答 (2件)

TryParseExact のカルチャ指定は、どのような形でしょうか。


CultureInfo.CreateSpecificCulture("ja-JP")
みたいな形を指定しても、ダメでしょうか。

宇宙仮面の C# プログラミング 日時のフォーマット
http://msdn.microsoft.com/ja-jp/library/9h21f14e …

参考URL:http://msdn.microsoft.com/ja-jp/library/9h21f14e …
    • good
    • 0
この回答へのお礼

教えてくれてありがとうございます。
教えてくれた内容でできそうです。

お礼日時:2010/11/15 20:55

入力していない値を補完するのに、システムに頼るなんて。


入力された月日に対応する年を補完するのはアプリケーションの責任です。
今現在の年でよいのか、過去でなきゃいけないのか、未来なのか
その辺を判断して、アプリケーションで付加しましょう。

この回答への補足

入力していない値を補完するしくみをシステムでできるように、DateTime.TryParseのような機能があると思っていますが。。。

補足日時:2010/10/26 08:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!