私は"MM/dd/yyyy h:mmt"
の行に沿ってカスタムフォーマット文字列を持つ.NETのDateTime.ParseExact
を呼び出しています。この文字列は4桁の年を処理しますが、2桁の年を処理しません。単一のParseExact呼び出しで両方のケースを処理する方法はありますか?私は"MM/dd/yy h:mmt"
を試して、2桁の大文字小文字しか扱っていません。DateTime.ParseExactを1回呼び出すだけで、2桁と4桁の年の両方をどのように受け入れることができますか?
6
A
答えて
19
あなたはParseExact
のこのオーバーロードの第二引数のフォーマット文字列の配列を渡すことができます - これは2と4年間のバリアントの両方が含まれます。あなたの日付文字列は、ユーザーの現在のカルチャに合わせてローカライズされている場合null
かDateTimeFormatInfo.CurrentInfo
を通過し、第三引数には
DateTime dt =
DateTime.ParseExact(s, new[] { "MM/dd/yyyy h:mmt", "MM/dd/yy h:mmt" }, null, 0);
;:
DateTime.ParseExact(myDateTime,
new []{"MM/dd/yy h:mmt", "MM/dd/yyyy h:mmt"},
CultureInfo.InvariantCulture,
DateTimeStyles.None)
0
あなたはいつもちょうどappropriate overloadを使用することができます。
var date = DateTime.ParseExact(dateString,
new[] { "MM/dd/yyy h:mmt", "MM/dd/yy h:mmt" },
new CultureInfo("en-US"),
DateTimeStyles.None);
3
が可能なフォーマットの配列を受け取りDateTime.ParseExact
のオーバーロードを呼び出し日付文字列が常に米国の形式の場合は、DateTimeFormatInfo.InvariantInfo
を渡します。
第4引数の場合、0はDateTimeStyles.None
に相当します。
MSDN Library documentationを参照してください。
1
フォーマットの文字列配列をとるオーバーロードされたDateTime.ParseExactを使用します。
MSDN:
string[] formats= {"MM/dd/yyyy h:mmt", "MM/dd/yy h:mmt"};
var dateTime = DateTime.ParseExact(dateString, formats,
new CultureInfo("en-US"),
DateTimeStyles.None);
関連する問題
- 1. 2桁と4桁の両方で値を検証するDateFormat?
- 2. NSNumberFormatterは4桁しか受け入れることができません
- 3. メソッドが1回だけ呼び出されることをどのようにアサーションするのですか?
- 4. C++で文字列を解析し、一桁と二桁の両方の日付書式を受け入れる
- 5. 2桁の月変数と1桁の月変数をどのように比較できますか?ここ
- 6. 4桁の入力ごとにAjaxを呼び出す
- 7. android-onPostInitCompleteは、getRemoteServiceへの呼び出しごとに1回だけ呼び出すことができます
- 8. 2桁の年を4桁の年に変換するよりエレガントな方法がありますか?
- 9. パッド1桁、2桁、3桁の数字に0を付けた
- 10. 4桁の小数点以下を受け入れるテキストボックス
- 11. ReactiveX:Observable.Create()を1回だけ呼び出すようにする
- 12. 1桁と2桁のマスク
- 13. 2桁の数字を受け入れるプログラムを書く#
- 14. 日付マスクで1桁の日付/月を受け入れます。
- 15. invariant違反:injectTapEventPlugin():アプリケーションのライフサイクルごとに1回だけ呼び出すことができます
- 16. 2桁の有効桁数をできるだけ大きくするにはどうすればよいですか?
- 17. CMake check_function_existsはマクロで1回だけ呼び出されます
- 18. AuthenticationEntryPointはときどき呼び出されるだけです
- 19. メソッドを2回呼び出すときにレンダリングされるSVGコンポーネントは1つだけです
- 20. requestAnimationFrameが1回だけ呼び出されています
- 21. 複数のインテントがブロードキャスト受信機を1回だけ呼び出す
- 22. mouseMovedイベントは1回だけ呼び出されるようです。
- 23. appdelegate deallocは1回だけ呼び出されますか?
- 24. Linq:WhereとOrderByに同じメソッドを2回ではなく1回だけ呼び出しますか?
- 25. @Scheduleメソッドを一度に1回だけ呼び出す方法
- 26. onkeyupイベントを1回だけ確実に呼び出す方法
- 27. Reactjs AJAX呼び出しを複数回呼び出す(1回のクリックで1回だけ!)
- 28. ディレクティブ/ * ng地図上に新しい方向を描き替えることができるように1回だけ呼び出されます。
- 29. cfSpreadsheet 2桁の年
- 30. インターネット上の誰かからのリクエストをどのように受け入れることができますか?
おかげ。これは素晴らしい。フォーマットはアレイに表示される順序で試行されていますか?最初に4桁の数字を入力する方がよいでしょうか? –
@WilliamGross - ドキュメントでは指定されていませんが、可能性があります。パースする文字列の大部分が4桁の年を持つ場合は、最初に4桁の書式を指定する方がよいでしょう。 – Oded