#windows-phone-7 #timezone #utc
#windows-phone-7 #Часовой пояс #utc
Вопрос:
Кто-нибудь знает лучший способ получить смещение UTC в WP7? По-видимому, API часовых поясов там не был реализован.
Спасибо
Комментарии:
1. Используйте структуру DateTimeOffset , вот для чего она предназначена!
Ответ №1:
Просто используйте DateTimeOffset.Now.Offset
… вот почему был создан DateTimeOffset!
Ответ №2:
Если вы просто хотите перевести на местное время, используйте DateTime.ToLocalTime()
. Если вам нужно смещение, я думаю, вы можете вычесть исходное значение. Документация.
Ответ №3:
Недавно я сделал что-то вроде приведенного ниже; это было сделано быстро, но это работает. В моем случае я всегда хотел время по восточному часовому поясу, поскольку именно для этого события предназначалось мое приложение. Сохраняется как UTC и вычисляется смещение.
private DateTime _startTimeUtc;
private DateTime _startTime;
public DateTime StartTime
{
get { return _startTime; }
set
{
_startTimeUtc = value.ToUniversalTime();
_startTime = _startTimeUtc.Subtract(EasternTimeUtcOffSet);
}
}
public DateTime StartTimeUtc
{
get { return _startTimeUtc; }
set
{
_startTimeUtc = value;
_startTime = _startTimeUtc.Subtract(EasternTimeUtcOffSet);
}
}
private static TimeSpan EasternTimeUtcOffSet
{
get { return TimeSpan.FromHours(4); }
}
Ответ №4:
private int TimeZoneOffset()
{
DateTime dt = DateTime.Now;
return dt.Subtract(dt.ToUniversalTime()).Hours;
}