У меня есть веб-работа в azure, включающая получение строкового значения и преобразование его в значение DateTime. Проблема заключается в том, что я хочу, чтобы функция предположила, что это время изначально введено в центральное время (CST), а затем преобразовала его в универсальное время. Когда я запускаю эту функцию локально, все работает как положено. Я полагаю, что проблема заключается в том, что когда функция запускается с сервера azure, она предполагает, что все времена находятся в UT C для начала (поэтому попытка преобразовать ее в UT C вообще не меняет ее).
Вот мой код:
function(string date)
{
return DateTime.SpecifyKind(Clean<DateTime>(date.ToString()). DateTimeKind.Local).ToUniversalTime();
}
//The clean function converts the string to the correct date format
private static T Clean<T>(string s) {
s = Clean(s);
var type = Nullable.GetUnderlyingType(typeof(T)) ?? typeof(T);
return (s == "") ? default(T) : (T)Convert.ChangeType(s, type);
}
В основном мои логики c: конвертировать строку в формат DateTime (с функцией Clean), затем использовать SpeficyKind для обработки ее как локальной даты, затем преобразовать его в универсальное время.
Ожидаемый результат: если строка даты «28.12.2009», я бы хотел, чтобы выходные данные были 2019-12-28T06: 00: 00Z. Это работает, когда я проверяю функцию локально. Однако в моем веб-задании результат всегда 2019-12-28T00: 00: 00Z