すぐ忘れて何度も調べることになるのでメモ
確認環境
- VisualStudio2019
- C# 9.0(バージョン不問
コード例
具体的にフォーマットを指定する場合以下のように指定する
bool isOK = DateTime.TryParseExact("20220413123045", "yyyyMMddHH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime result); if (isOK) { // 変換できた時の処理 }
- 上記引数は雑に以下認識でOK
- CultureInfo.InvariantCulture = 言語形式に依存しない形式、
- DateTimeStyles.None = 具体的に形式を指定する場合NoneでOK
具体的とは、"yyyyMMdd"のこと。逆に形式を "s"、"D"、"r"、"F" など言語によって表示が変わる形式を Parse する場合、カルチャーは対象言語を正しく指定して、DateTimeStyles は入力される可能性のある文字列に対して正しく設定すること(=多言語対応で無限にトラブルが出るのでこれは全く推奨できない)