Выбросить исключение.
if (fileName.IndexOfAny (Path.GetInvalidFileNameChars ()) & gt; -1) {throw new ArgumentException (); }
DateTimeOffset также обрабатывает смещение часового пояса:
DateTimeOffset.Parse("2007-08-31T06:59:40+02:00")
или
DateTimeOffset.ParseExact("2007-08-31T06:59:40+02:00", "yyyy-MM-ddTHH:mm:sszzzz"
,System.Globalization.CultureInfo.InvariantCulture));
Вы можете использовать метод DateTimeOffset.TryParse.
Используйте DateTime.Parse()
:
DateTime dt = DateTime.Parse ("2007-08-31T06:59:40+02:00")
DateTimeOffset
для сохранения смещения.
– Oded
7 November 2012 в 15:12
Вы должны использовать DateTimeOffset.ParseExact
- вы знаете формат точный , который вы ожидаете, и поскольку это предположительно пришло с другого компьютера, а не на вход пользователя, это определенная ошибка , если она терпит неудачу. Аналогично вам следует указать инвариантную культуру, чтобы указать, что это не зависит от «текущей культуры» исполняемого потока.
var value = DateTimeOffset.ParseExact(text,
"yyyy'-'MM'-'dd'T'HH':'mm':'sszzz",
CultureInfo.InvariantCulture);
DateTimeOffset
- это тип, который точно представляет информацию - DateTime
имел бы , чтобы потерять часть этой информации.
Используйте DateTimeOffset.Parse()
.
Затем используйте свойство DateTime
или свойство DateTimeUtc
, чтобы получить DateTime (но вы должны выяснить, можете ли вы использовать DateTimeOffset.