3

AMまたはPMの式を使用Oct 3, 2014 10:05 a.m. することに慣れているので、解析する必要があります。ただし、それを に変更しても、を に正常に解析できません。DateTime.TryParseExact()TTT.T.stringDateTime

ここに私が持っているコードがあります:

string dateContent = "Oct 3, 2014 10:05 a.m.";
DateTime parseDate;
bool attempt = DateTime.TryParseExact(content, "MMM d, yyyy hh:mm T.T.", CultureInfo.CurrentCulture, DateTimeStyles.None, out parseDate);

どんな助けでも大歓迎です。何か不足している場合、または説明が必要な場合はお知らせください。

4

1 に答える 1

3

その形式は、ここT.T.でわかるように標準形式ではないため、次の簡単な方法でそれを取り除くことをお勧めします。

"2014 年 10 月 3 日午前 10 時 5 分".Replace("am", "AM").Replace("pm", "PM");

アップデート

custom s に入ることで過度にやり過ぎない、より一般的な解決策は、IFormatProvider次のような正規表現を使用することです。

Regex.Replace(dateContent, "([a|p]).(m).", "$1$2", RegexOptions.IgnoreCase);

これでうまくいくはずです(近くにac#コンパイラがないことに注意してください。テストしていません)。a.m.orのパターンを検索してp.m.(大文字と小文字を区別せずに) amorに置き換えpmます。

その時点からさらに aTryParseExactが機能します。

于 2014-10-06T21:13:06.070 に答える