首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在c#FX 3.5中的特定时区中如何创建日期时间?

在c#FX 3.5中的特定时区中如何创建日期时间?
EN

Stack Overflow用户
提问于 2018-04-07 23:54:42
回答 2查看 0关注 0票数 0

我正在尝试创建一个单元测试,以测试当时区在机器上发生变化时的情况,因为它已经被错误地设置并进行了修正。

在测试中,我需要能够在非本地时区中创建datetime对象,以确保运行测试的人员能够成功地完成测试。

从datetime构造函数中可以看到,我可以将时区设置为本地时区、UTC时区或未指定时区。

如何使用PST这样的特定时区创建日期时间?

EN

回答 2

Stack Overflow用户

发布于 2018-04-08 08:16:40

public struct DateTimeWithZone
{
    private readonly DateTime utcDateTime;
    private readonly TimeZoneInfo timeZone;

    public DateTimeWithZone(DateTime dateTime, TimeZoneInfo timeZone)
    {
        var dateTimeUnspec = DateTime.SpecifyKind(dateTime, DateTimeKind.Unspecified);
        utcDateTime = TimeZoneInfo.ConvertTimeToUtc(dateTimeUnspec, timeZone); 
        this.timeZone = timeZone;
    }

    public DateTime UniversalTime { get { return utcDateTime; } }

    public TimeZoneInfo TimeZone { get { return timeZone; } }

    public DateTime LocalTime
    { 
        get 
        { 
            return TimeZoneInfo.ConvertTime(utcDateTime, timeZone); 
        }
    }        
}
票数 0
EN

Stack Overflow用户

发布于 2018-04-08 09:48:28

DateTimeOffset结构正是为这种类型的使用而创建的。

下面是一个创建具有特定时区的DateTimeOffset对象的示例:

DateTimeOffset do1 = new DateTimeOffset(2008, 8, 22, 1, 0, 0, new TimeSpan(-5, 0, 0));

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档