C# 获取静态日期时间的UTC等效值

C# 获取静态日期时间的UTC等效值,c#,C#,我需要在这里做的很简单,但出于某种原因,我只是在这上面画了一个空白,需要一些关于如何正确做的保证 我正在尝试确定UTC的等效值,即明天太平洋时间上午5点。我试图做到这一点而不依赖于服务器时间,因为我无法知道这是什么时区 我只需要检查一下下面的内容。这是最好的方法吗?服务器关闭时我会遇到问题吗?这能给我一个UTC明天上午5点的准确表示吗 DateTime datetime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.

我需要在这里做的很简单,但出于某种原因,我只是在这上面画了一个空白,需要一些关于如何正确做的保证

我正在尝试确定UTC的等效值,即明天太平洋时间上午5点。我试图做到这一点而不依赖于服务器时间,因为我无法知道这是什么时区

我只需要检查一下下面的内容。这是最好的方法吗?服务器关闭时我会遇到问题吗?这能给我一个UTC明天上午5点的准确表示吗

DateTime datetime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.AddDays(1).Day, 5, 0, 0); //5AM tomorrow
TimeZoneInfo pstZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
DateTime pstTime = TimeZoneInfo.ConvertTimeToUtc(datetime, pstZone);

TIA

您的代码实际上缺少一些细节。基本上,方法是:

现在以UTC为单位 将其转换为pst。 今天吃 给明天增加一天 再加上5个小时,就可以得到凌晨5点。 转换回UTC 代码:


使用UtcNow而不是现在。明天是什么意思?明天在哪个时区?您的DateTime。现在年、月和日的值都取决于执行代码的机器的时区。为了寻找明天,可能会出现各种各样的包装。@AdamBrown明天太平洋标准时间谢谢,这正是我需要的!我感谢你对我的耐心。
static void Main(string[] args)
{
     var utcNow = DateTime.UtcNow;
     TimeZoneInfo pstZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
     var pstNow = TimeZoneInfo.ConvertTimeFromUtc(utcNow, pstZone);

     DateTime targetPstTime = pstNow.Date.AddDays(1).AddHours(5);

     DateTime utcAnswer = TimeZoneInfo.ConvertTimeToUtc(targetPstTime, pstZone);

     Console.WriteLine(utcAnswer);
     Console.ReadKey();

 }