首页 > 后端开发 > C++ > 如何在 C# 中创建具有特定时区的日期时间?

如何在 C# 中创建具有特定时区的日期时间?

Susan Sarandon
发布: 2025-01-26 04:31:08
原创
288 人浏览过

How Can I Create DateTimes with Specific Time Zones in C#?

在 C# 中使用日期时间和时区

许多编程任务,特别是在测试中,需要创建与特定时区相关的DateTime对象。虽然 DateTime 构造函数可以处理本地、UTC 和未指定的时间,但使用 TimeZoneInfo 可以提供更精确的控制。

利用时区信息

不是仅仅依赖于DateTime构造函数的TimeZone属性,TimeZoneInfo提供了卓越的时区管理和转换功能。

自定义日期时间结构

此示例使用自定义结构 DateTimeWithZone 来封装 DateTime 及其关联的时区:

<code class="language-csharp">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 => utcDateTime;
    public TimeZoneInfo TimeZone => timeZone;
    public DateTime LocalTime => TimeZoneInfo.ConvertTime(utcDateTime, timeZone);
}</code>
登录后复制

实际应用

要在太平洋标准时间 (PST) 时区创建 DateTimeWithZone 对象:

<code class="language-csharp">var pstDateTime = new DateTimeWithZone(new DateTime(2023, 1, 1), TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"));</code>
登录后复制

此方法可以与特定时区的 DateTime 对象无缝协作,从而根据需要促进 UTC 和本地时间之间的转换。

以上是如何在 C# 中创建具有特定时区的日期时间?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板