繁体   English   中英

从给定的时间戳字符串中找到时区和时间

[英]Find time zone and time from given string of timestamp

我需要解析一个时间戳,并从如下所示的字符串中获取时间和时区,

时间戳=“ 2013-09-17T14:55:00.355-08:00”

从上面的字符串中,我应该可以将时间设为下午2:55,将时区设为EST(东部)

任何人都可以让我知道如何完成上述解析。

您可以使用DateTimeOffset获得一个既包含本地时间又包含距UTC的偏移量的DateTimeOffset.ParseExact 但是,那时可能有多个时区观察到的与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);
    }
} 

或使用我的Noda时间库:

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);
    }
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM