C# 如何在太平洋标准时间中将DateTimeOffset设置为午夜

C# 如何在太平洋标准时间中将DateTimeOffset设置为午夜,c#,asp.net-mvc-3,scheduled-tasks,quartz.net,quartz.net-2.0,C#,Asp.net Mvc 3,Scheduled Tasks,Quartz.net,Quartz.net 2.0,我正在使用Quartz.NET()并试图将开始日期设置为午夜。但是我对创建这个日期有问题。此应用程序将位于不同时区的不同服务器上。但我希望这个时间总是设置为太平洋标准时间的午夜 以下是我的非工作代码: TimeZoneInfo info = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); DateBuilder dateBuilder = DateBuilder.NewDateInTimeZ

我正在使用Quartz.NET()并试图将开始日期设置为午夜。但是我对创建这个日期有问题。此应用程序将位于不同时区的不同服务器上。但我希望这个时间总是设置为太平洋标准时间的午夜

以下是我的非工作代码:

    TimeZoneInfo info = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");       
    DateBuilder dateBuilder = DateBuilder.NewDateInTimeZone(info).AtHourMinuteAndSecond(0,0,0);           
    DateTimeOffset runTime = dateBuilder.Build();          

    IJobDetail job = JobBuilder.Create<TimeJob>()
        .WithIdentity("job1", "group1")
        .Build();

    ITrigger trigger = TriggerBuilder.Create()
        .WithIdentity("trigger1", "group1")
        .StartAt(runTime)
        .WithSimpleSchedule(x => x.WithIntervalInHours(24).RepeatForever())
        .Build();
TimeZoneInfo info=TimeZoneInfo.FindSystemTimeZoneById(“太平洋标准时间”);
DateBuilder DateBuilder=DateBuilder.NewDateInTimeZone(info).AtHourMinuteAndSecond(0,0,0);
DateTimeOffset运行时=dateBuilder.Build();
IJobDetail job=JobBuilder.Create()
.WithIdentity(“工作1”、“组1”)
.Build();
ITrigger trigger=TriggerBuilder.Create()
.WithIdentity(“触发器1”、“组1”)
.StartAt(运行时)
.WithSimpleSchedule(x=>x.WithIntervalInHours(24).RepeatForever())
.Build();
我需要有DateTimeOffset格式的日期,这将是午夜太平洋标准时间。我喜欢使用MVC3。
非常感谢任何帮助

无论服务器如何,这都会为您提供午夜PST日期

DateTime dateInDestinationTimeZone = System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, System.TimeZoneInfo.Utc.Id, "Pacific Standard Time").Date;

很抱歉让它死而复生,但我发现@Vishnu提供的解决方案对我不起作用

我正在一台EST机器上工作,创建对象的结果是当地时间午夜。 此外,提到的解决方案没有创建
DateTimeOffset
对象,而是创建
DateTime
对象

我终于找到了一个适合我的解决方案,我想我会在这里分享,因为其他人可能会觉得它有用

var userTimeZone =
        TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
var startTime = new DateTimeOffset(DateTime.Today.Ticks,
        userTimeZone.GetUtcOffset(DateTime.Today) );

这里的诀窍是使用
刻度
,这使得计算非常“无缝”。

如果在DST期间运行,会发生什么情况?因为我们与UTC合作,日光节约时间(DST)将自动计算。此答案被切断。很抱歉,我相信答案包含了所有内容。我完成了最后一句话背后的思想。