У меня есть код, который я хочу проверить на правильное время, и по какой-то причине он работает для дат с PM, но не с AM.
Так что я беру в форматах, которые соответствуют этому формату:
6/1/2018 12:00:00 PM
Однако по тем или иным причинам это работает отлично, когда у него PM, но когда я заменяю его на AM, он ломается.Формат в приемлемых форматах, по которым я принимаю его, имеет следующий формат:
М / д / гггг ЧЧ: мм: сс тт
Ниже приведен сбой, говорящий, что это ложь:
DateTimeOffset dateTimeResult;
var acceptableFormats = new string[] {
"yyyy-MM-dd'T'HH:mm:ss.FFFK",
"M/d/yyyy HH:mm:ss",
"MM/dd/yyyy HH:mm:ss",
"M/d/yyyy HH:mm:ss tt",
"MM/dd/yyyy HH:mm:ss tt",
"yyyy-MM-dd' 'HH:mm:ss.FFFK",
"yyyy-MM-dd'T'HH:mm:ssK",
"yyyy-MM-dd' 'HH:mm:ssK",
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd' 'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd' 'HH:mm",
"yyyy-MM-dd'T'HH",
"yyyy-MM-dd' 'HH",
"yyyy-MM-dd",
"yyyy-MM-dd",
"yyyyMMdd",
"MM/dd/yyyy",
"M/d/yyyy",
"yyyy-MM",
"yyyy" };
DateTimeOffset dateTimeResult;
var timeOffset = DateTimeOffset.TryParseExact("6/1/2018 12:00:00 AM", acceptableFormats, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTimeResult);
Эта работа говорит, что это правда:
DateTimeOffset dateTimeResult;
var acceptableFormats = new string[] {
"yyyy-MM-dd'T'HH:mm:ss.FFFK",
"M/d/yyyy HH:mm:ss",
"MM/dd/yyyy HH:mm:ss",
"M/d/yyyy HH:mm:ss tt",
"MM/dd/yyyy HH:mm:ss tt",
"yyyy-MM-dd' 'HH:mm:ss.FFFK",
"yyyy-MM-dd'T'HH:mm:ssK",
"yyyy-MM-dd' 'HH:mm:ssK",
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd' 'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm",
"yyyy-MM-dd' 'HH:mm",
"yyyy-MM-dd'T'HH",
"yyyy-MM-dd' 'HH",
"yyyy-MM-dd",
"yyyy-MM-dd",
"yyyyMMdd",
"MM/dd/yyyy",
"M/d/yyyy",
"yyyy-MM",
"yyyy" };
DateTimeOffset dateTimeResult;
var timeOffset = DateTimeOffset.TryParseExact("6/1/2018 12:00:00 PM", acceptableFormats, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTimeResult);