2016-04-19 3 views
3

У меня есть строка, представляющая смещение конкретного клиента. Пример: UTC+1:00. Это всегда смещение относительно UTC, поэтому строка всегда начинается с UTC, за которой следует + или -, а затем смещение в формате hh:mm.Создать время Смещение строки с NodaTime

Вопрос в том, как я могу взять эту строку и преобразовать ее в смещение? Я не хочу, чтобы объект даты и времени применял смещение, я просто хочу, чтобы объект, который символизирует мое смещение, затем я могу применить к дате, что совсем другое.

В заголовке указано, что я хочу использовать NodaTime для этого.

ответ

7

Это звучит, как вы хотите:

var pattern = OffsetPattern.CreateWithInvariantCulture("'UTC'+H:mm"); 
var offset = pattern.Parse(text).Value; 
+0

Спасибо за вашу помощь до сих пор Джон, но, похоже, это еще не полностью решена. Похоже, по крайней мере одна строка появляется в следующем формате: 'UTC ± 00: 00', который разбивает шаблон ... Так что, похоже, что после UTC может быть' + ',' '' или '± '. Как заставить шаблон работать для всех комбинаций выше? – JohnUbuntu

+0

@JohnUbuntu: Я бы, скорее всего, только специальный случай 'UTC ± 00: 00' в качестве точного соответствия. Этот символ будет действителен только в том случае, если смещение равно 0. –

 Смежные вопросы

  • Нет связанных вопросов^_^