我正在使用地球工具webservice来查找基于lat long的时区。我在网络服务中得到了偏移量和后缀。
现在我遇到的问题是我需要从偏移量和后缀中获取时区,并确定该区域是否有夏令时。我怎么能这样做?
答案 0 :(得分:1)
.Net有一个很好的TimeZoneInfo.Local.IsDaylightSavingTime,但遗憾的是你没有足够的信息来创建一个实例。
但是你应该能够做到这样的事情:
var offSet = -7;
var utcDateTimeStr = "2011-09-10 22:15:38";
var localWithDSStr = "10 Sep 2011 15:15:38";
// utc time
DateTime utcDateTime = DateTime.SpecifyKind(
DateTime.Parse(utcDateTimeStr), DateTimeKind.Utc);
// time taking into account daylight savings
DateTime localWithDS = DateTime.SpecifyKind(
DateTime.Parse(localWithDSStr), DateTimeKind.Local);
// time not taking into account daylight savings
DateTime localWithoutDS = utcDateTime.AddHours(offSet);
// is the time given adjusted for daylight savings
TimeSpan diff = (localWithoutDS - utcDateTime);
bool isDayLightSaving = diff.Hours != offSet;
答案 1 :(得分:0)
如果在lang + lot上有夏令时,您使用的API会返回,您不必从偏移和后缀中找到它。
见:
DST
是否包括当地时间和同位素元素 夏令时。如果他们这样做,这个元素的价值将是 真正。如果他们不这样做,则该值将为False。如果不能 确定是否应该使用夏令时, 值将是未知的。自:1.1
如果你想确定它是你自己的,没有这个属性,你必须知道国家指向的地方,因为DST是特定国家的。