如果我只有一个表示时区的字符串,那么获取分钟的最简单方法是什么? (例如“欧洲/伦敦”)
到目前为止,我有:
CLOSE_MODAL
但我找不到一种简单的方法将其转换为分钟。
注意:我需要的是在执行代码的特定时刻的偏移量。在该时区和UTC之间。
答案 0 :(得分:18)
您需要DateTimeZone.GetUtcOffset(Instant)
:
public static int ConvertFromTimeZoneToMinutesOffset(string timeZone, IClock clock)
{
DateTimeZone zone = DateTimeZoneProviders.Tzdb[timeZone];
Offset offset = zone.GetUtcOffset(clock.Now);
return offset.Milliseconds / NodaConstants.MillisecondsPerMinute;
}
你 可以不使用IClock
参数,而是在方法中使用SystemClock.Instance
,但这会导致代码难以测试。
答案 1 :(得分:-2)
在分钟上使用DatePart()函数。