2016-09-28 3 views
-1

Я хранил различное время суток в TimeSpan на сервере в зоне UTC. Теперь я хочу получить эту запись в зоне IST. На моем сервере данные находятся в формате HH: mm: ss, и я хочу вернуть его в том же формате зоны IST. Я могу преобразовать DateTime в TimeSpan, используя следующий код, но я не могу преобразовать TimeSpan в TimeSpan.Конвертировать UTC TimeSpan в IST TimeSpan в C#

DateTime timeUtc = DateTime.UtcNow; 

    TimeZoneInfo istZone = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"); 

    DateTime istTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, istZone); 

    return string.Format("The date and time are {0}.", istTime.TimeOfDay.ToString().Substring(0, 6)); 
+0

'TimeSpan' измеряет промежуток времени (продолжительность), *** не *** время суток. Где этот 'TimeSpan' в коде, который вы представили? – spender

+0

Временная рамка - это дельта между двумя объектами DateTime и не имеет TimeZone, поскольку измерения являются дифференциалом. – jdweng

+0

Ох. Прежде всего, извините за задержку. Мне нужно изменить свой вопрос. Я хочу сказать, позволяет пользователю регистрироваться в любое конкретное время дня в UTC. Я просто хочу получить это время в IST на основе HH: mm: ss only. Как это возможно? – Dipak

ответ

1

попробуйте это.

DateTime utcdate = DateTime.ParseExact("6/15/2014 12:00:00 AM", "M/dd/yyyy 
             h:mm:ss tt",CultureInfo.InvariantCulture); 
var istdate = TimeZoneInfo.ConvertTimeFromUtc(utcdate, 
TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")); 
+0

Как это относится к 'TimeSpan ', упомянутому OP? – spender