Люди обычно используют The "O"
or "o"
standard format для этого. Этот формат всегда генерирует формат "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK"
независимо от того, какую культуру вы используете.
Но это не соответствует потребностям. Для этого вам нужно использовать custom date and time format.
DateTime dt = new DateTime(2014, 11, 19, 21, 59, 59, DateTimeKind.Local);
dt.ToString("yyyy-MM-ddTHH:mm:ssK");
результат будет;
2014-11-19T21:59:59+02:00
Затем вы можете использовать String.Substring
overload, чтобы удалить последний символ, как;
.Substring(0, dt.ToString("yyyy-MM-ddTHH:mm:ssK").Length - 1)
Помните, что "K"
custom format specifier генерирует только UTC Offset часть текущего часового пояса, если ваш DateTimeKind
является Local
. Для Utc
он генерирует символ Z
, а для Unspecified
он генерирует пустую строку.
см. Http://stackoverflow.com/questions/6314154/generate-datetime-format-for-xml –