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