Как получить текущую дату в часовом поясе пользователя с учетом смещения TimeSpan? - PullRequest
0 голосов
/ 20 февраля 2019

Мне нужно узнать, какой сегодня день для пользователя с учетом смещения 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.Я немного посмотрел на это и обнаружил, что невозможно с учетом смещения получить всю информацию о часовом поясе, но мне действительно не нужно знать точный часовой пояс, а какой сегодня день.Есть ли способ для меня сделать это?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019
string timezone = this.HttpContext.Request.Headers["X-MyApp-Timezone"];
DateTime consumersCurrentDateTime = DateTime.UtcNow + TimeSpan.Parse(timezone, 
DateTimeFormatInfo.InvariantInfo);
DateTime customersCurrentDate = consumersCurrentDateTime.Date;
0 голосов
/ 20 февраля 2019

Благодаря комментарию Жоао Пауло, я думаю, что могу сделать это вообще без часовых поясов, просто сделав это:

string timezone = this.HttpContext.Request.Headers["X-MyApp-Timezone"];
var timeSpan = TimeSpan.Parse(timezone, DateTimeFormatInfo.InvariantInfo);
var consumersCurrentDate = DateTimeOffset.UtcNow.ToOffset(timeSpan).Date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...