我需要找到给定Timespan偏移量的用户的星期几。
现在,这是我尝试过的:
string timezone = this.HttpContext.Request.Headers["X-MyApp-Timezone"];
var timeSpan = TimeSpan.Parse(timezone, DateTimeFormatInfo.InvariantInfo);
var consumersCurrentTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, timeSpan);
var consumersCurrentDate = consumersCurrentTime.Date();
我知道这是行不通的,因为TimeZoneInfo.ConvertTimeFromUtc
使用TimeZoneInfo
而不是TimeSpan
。我仔细研究了一下,发现不可能给出一个偏移量来获取整个时区信息,但是我真的不需要知道确切的时区,只需知道它是星期几。有什么办法可以做到吗?
答案 0 :(得分:1)
string timezone = this.HttpContext.Request.Headers["X-MyApp-Timezone"];
DateTime consumersCurrentDateTime = DateTime.UtcNow + TimeSpan.Parse(timezone,
DateTimeFormatInfo.InvariantInfo);
DateTime customersCurrentDate = consumersCurrentDateTime.Date;
答案 1 :(得分:0)
由于Joao Paulo的评论,我认为我可以完全不涉及时区,而这样做:
string timezone = this.HttpContext.Request.Headers["X-MyApp-Timezone"];
var timeSpan = TimeSpan.Parse(timezone, DateTimeFormatInfo.InvariantInfo);
var consumersCurrentDate = DateTimeOffset.UtcNow.ToOffset(timeSpan).Date;