获取等效于静态 DateTime 的 UTC [重复]
Posted
技术标签:
【中文标题】获取等效于静态 DateTime 的 UTC [重复]【英文标题】:Get UTC equivalent of static DateTime [duplicate] 【发布时间】:2018-06-25 14:00:53 【问题描述】:我需要在这里做的很简单,但出于某种原因,我只是对此一无所知,需要一些关于如何正确做的保证。
我正在尝试确定明天太平洋时间上午 5 点的 UTC 时间。我试图在不依赖服务器时间的情况下执行此操作,因为我无法知道这是什么时区。
我只需要对以下内容进行全面检查。这是最好的方法吗?我会遇到服务器时间关闭的问题吗?这会给我一个准确的表示明天凌晨 5 点的 UTC 吗?
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
【问题讨论】:
使用UtcNow
而不是Now
。
***.com/questions/246498/…
明天是什么意思?明天在哪个时区?
您的 DateTime.Now
年、月和日值都取决于执行代码的机器的时区。试图找到“明天”时可能会发生各种包装。
@AdamBrown 明天太平洋标准时间
【参考方案1】:
您的代码实际上缺少一些细节。基本上,方法是:
-
现在采用 UTC
将其转换为 pst。
以“今天”为例
添加一天以获得“明天”
增加 5 小时才能到凌晨 5 点。
转换回 UTC
代码:
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();
【讨论】:
谢谢,这正是我需要的!感谢您对我的耐心。以上是关于获取等效于静态 DateTime 的 UTC [重复]的主要内容,如果未能解决你的问题,请参考以下文章
获取特定历史版本的 git 等效于 hg update 是啥? [复制]