У меня возникли проблемы с пониманием того, почему значение восстановленной строки даты и времени отличается от исходного. Я пишу строку в универсальный формат даты и времени (в формате «u», чтобы в конце было «z»), но когда она восстанавливается, она отличается на один час. Я использую «u», чтобы предотвратить подобные вещи. Может ли кто-нибудь сказать мне, почему это отличается?
Мне нужно хорошее строковое представление, потому что я буду использовать код в 5 разных часовых поясах.
Программа:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfoByIetfLanguageTag("es-CR");
DateTime min = DateTime.MinValue;
Console.Write("Min value date: ");
Console.WriteLine(min);
Console.Write("String: ");
string str = min.ToString("u");
Console.WriteLine(str);
DateTime dt = DateTime.Parse(str);
Console.Write("Restored Date: ");
Console.WriteLine(dt);
Console.ReadLine();
}
}
}
Результат:
Минимальная дата валютирования: 01.01.0001 00:00:00
Строка: 0001-01-01 00:00:00Z
Дата восстановления: 01.01.0001 01:00:00
Редактировать: возможность попробовать культуру Коста-Рики.