从给定的时间戳字符串中查找时区和时间
本文关键字:查找 时区 时间 字符串 时间戳 | 更新日期: 2023-09-27 18:31:36
我需要解析时间戳并从字符串中获取时间和时区,如下所示,
时间戳 ="2013-09-17T14:55:00.355-08:00"
从上面的字符串中,我应该能够将时间设置为下午 2:55,时区为 EST(东部时间)
任何人都可以让我知道如何完成上述解析。
您可以使用
DateTimeOffset.ParseExact
获得包含本地时间和 UTC 偏移量的DateTimeOffset
。但是,当时可能有多个时区观察到与 UTC 的相同偏移量,因此您无法获取实际时区。
示例代码:
using System;
using System.Globalization;
class Test
{
static void Main()
{
string text = "2013-09-17T14:55:00.355-08:00";
DateTimeOffset dto = DateTimeOffset.ParseExact(text,
"yyyy-MM-dd'T'HH:mm:ss.fffzzz",
CultureInfo.InvariantCulture);
Console.WriteLine(dto);
}
}
或者使用我的野田时间库:
using System;
using NodaTime;
using NodaTime.Text;
class Test
{
static void Main()
{
string text = "2013-09-17T14:55:00.355-08:00";
// Use GeneralIsoPattern just to get a default culture/template value
OffsetDateTime odt = OffsetDateTimePattern.GeneralIsoPattern
.WithPatternText("yyyy-MM-dd'T'HH:mm:ss.fffo<+HH:mm>")
.Parse(text)
.Value;
Console.WriteLine(odt);
}
}