Сохранить дату и время в формате UTC в базе данных - PullRequest
1 голос
/ 25 декабря 2011

У меня проблема с сохранением даты в UTC. Я принимаю дату и время в качестве ввода от пользователя, после чего я хочу сохранить значение UTC этого времени в базе данных. Я использую одно текстовое поле (для получения точной даты) и один выпадающий список (для получения часов этой даты), чтобы получить вводимые пользователем значения даты и времени. ниже мой код, чтобы получить точную дату и время ввода от пользователя после объединения значения обоих элементов управления. например: 25.12.2011 в качестве даты и 10 часов в виде часов после объединения обоих значений, значения даты - 25.12.2011 в 10:00. Для его расчета я использую следующий код:

      string[] dateArray = HdnDPC_date1.Value.Split('/');
            string dtt = dateArray[1] + "/" + dateArray[0] + "/" + dateArray[2];
            var fdate = Convert.ToDateTime(dtt);

           DateTime dadate = new DateTime(Convert.ToInt32(dateArray[2]), Convert.ToInt32(dateArray[1]), Convert.ToInt32(dateArray[0]));
            dadate = Convert.ToDateTime(fdate).AddHours(deadlineHr);

приведенный ниже код используется для преобразования значения даты и времени в UTC

            DateTime DeadLine = TimeZoneInfo.ConvertTimeToUtc(dadate);

но код не преобразует введенную дату и время в соответствии с часовым поясом, он всегда преобразуется в соответствии с "Центральный часовой пояс, США и Канада" Но я хочу преобразовать эту дату в соответствии с часовым поясом пользователя.

Пожалуйста, помогите мне определить эту проблему, почему это произошло.

Ответы [ 3 ]

2 голосов
/ 25 декабря 2011

Вы можете попробовать использовать функцию ToUniversalTime

DateTime univDateTime = DateTime.Now.ToUniversalTime();

Подробнее о ToUniveralTime здесь

1 голос
/ 25 декабря 2011

Вам необходимо указать часовой пояс пользователя. Например:

TimeZoneInfo.ConvertTimeToUtc(dadate, 
            TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"));
0 голосов
/ 25 декабря 2011

Установите текущую культуру вашей темы в соответствии с культурой пользователя, например:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage); 
Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);

См. http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...