Опитвам се да конвертирам времето за преобразуване в часовата зона на потребителя, но нямам низа за часова зона на Windows, като например „Тихоокеанско стандартно време“. Всичко, което имам, е отместване на низ като "-07:00". Изглежда, че трябва да създам времеви интервал. Единственият начин ли е да анализирате този низ ръчно?. Изглежда, че трябва да има начин за преобразуване на време с помощта на отместване на низ, но може би пропускам нещо.
Имам това, но изисква часовата зона. Опитвам се да го модифицирам, за да използва отместването вместо това, но можете да видите времевия интервал, който е създаден за преобразуването, и трябва да получа своето отместване спрямо времевия интервал.
static void Main(string[] args)
{
var currentTimeInPacificTime = ConvertUtcTimeToTimeZone(DateTime.UtcNow, "Pacific Standard Time");
//TimeSpan ts = new TimeSpan("-07:00");
Console.ReadKey();
}
static DateTimeOffset ConvertUtcTimeToTimeZone(DateTime dateTime, string toTimeZoneDesc)
{
if (dateTime.Kind != DateTimeKind.Utc) throw new Exception("dateTime needs to have Kind property set to Utc");
TimeSpan toUtcOffset = TimeZoneInfo.FindSystemTimeZoneById(toTimeZoneDesc).GetUtcOffset(dateTime);
var convertedTime = DateTime.SpecifyKind(dateTime.Add(toUtcOffset), DateTimeKind.Unspecified);
return new DateTimeOffset(convertedTime, toUtcOffset);
}