Преобразование 2012-06-28T14:30:00-04:00 в формат ггггММДТЧмм в C#
Я хочу преобразовать дату в C#, например, 2012-06-28T14: 30: 00-04: 00, в формат "ггггМмдтччмм", обе даты представлены в виде строки.
string currentDate="2012-06-28T14:30:00-04:00";
string requiredDate="yyyyMMddTHHmm"
Когда я пытаюсь преобразовать эту дату с помощью Convert.ToDateTime (), тогда C# возвращает "20120629T0000-04: 00", но это неверная дата.
3 ответа
Взгляните на стандартные строки формата даты и времени (MSDN). Я думаю, этого может быть достаточно, чтобы использовать только ToString()
метод на вашем DateTime
экземпляров.
Возможно, вам может понадобиться указать CultureInfo
(MSDN здесь) в соответствующих перегрузках методов преобразования. Возможно, сервер и клиентские приложения находятся в разных культурах и / или часовых поясах.
DateTime.Parse("2012-06-28T14:30:00-04:00").ToString("yyyyMMddTHHmm")
производит ценность, которую вы можете хотеть.
Обратите внимание, что изменение значения с абсолютного формата ISO8601 на локальный формат ISO8601 должно выполняться осторожно, так как оно меняет значение значения и часто само значение.
Пожалуйста, убедитесь, какой из следующих вариантов вы действительно хотите (и соответственно измените код):
- просто отбросьте время от значения. Будет производить полуслучайное время, если значения поступают из разных часовых поясов.
- всегда перемещайте значение в определенный часовой пояс и делайте его локальным для этого часового пояса.
- всегда перемещать значение в текущий часовой пояс и делать его локальным для текущего часового пояса
Или, может быть, вы ищете что-то совсем другое.
Я не уверен, что это формат, который вы пробуете
string currentDate="2012-06-28T14:30:00-04:00";
DateTime.Parse(currentDate).ToString("o")
Это даст вам 2012-06-29T00:00:00.0000000+05:30