我有一个datetime对象,并且我知道UTC偏移量(双精度)。如何从这两条信息中获取UTC时间?
我见过的所有示例都需要一个时区。好吧,我不知道现在的时区,也没关系。如果我的偏移量为-7,则可能是PDT,也可能是MST-这实际上无关紧要,因为两者都会产生相同的UTC。我不得不将我必须的偏移量转换为时区,以使“ ToUniversalTime”可以拉回偏移量,这看起来确实很愚蠢。
老实说,我将诉诸于仅使用以下内容:
DateTime dateTime = new DateTime(2014, 8, 6, 12, 0, 0);
Double timeZone = -7.0;
string utc = String.Format("{0}-{1}-{2}T{3}:{4}:{5}{6}:{7}", startDate.Year, startDate.Month, startDate.Day, startDate.Hour, startDate.Minute, startDate.Second, (int) Math.Floor(timeZone), (timeZone % 1) * 60);
有人可以告诉我为什么这是一个坏主意吗?
(有人可能会以重复的形式将其关闭,但我查看了其他十二个问题,但没有一个完全一样-他们都使用了TimeZoneInfo对象)。
参考方案
只需使用DateTimeOffset
:
TimeSpan utcOffset = TimeSpan.FromHours(timeZone);
DateTimeOffset result = new DateTimeOffset(dateTime, utcOffset);
DateTime utc = result.UtcDateTime;
要么
string utc = result.ToString("yyyy-MM-dd'T'HH:mm:ssK", CultureInfo.InvariantCulture);
尚不清楚为什么最后要将其作为字符串...
(您可能还想考虑使用我的Noda Time项目,特别是因为您可能会看到时区ID为TZDB时区...)
如何使用py.test猴子python的datetime.datetime.now? - python我需要测试使用datetime.datetime.now()的函数。最简单的方法是什么? 参考方案 您需要monkeypatch datetime.now函数。在下面的示例中,我正在创建夹具,以后可以在其他测试中重复使用:import datetime import pytest FAKE_TIME = datetime.datetime(2020, 12,…
C#System.DateTime.Now返回在Windows中设置的自定义时间格式 - c#C#System.DateTime.Now给我带时间的日期,但是无论我在Windows calander中设置的是什么,它都给我格式,即(am)(pm)甚至是(xyz),如何获取标准时间格式(AM / PM)而不管在Windows calander中设置的自定义时间格式? 参考方案 如果使用DateTime作为DateTime类型,则它将自动显示窗口格式。对…
如何在Python中获取UTC日期字符串? - python我正在尝试将utc日期字符串作为“YYYYMMDD”现在,我执行以下操作:nowTime = time.gmtime(); nowDate = date(nowTime.tm_year, nowTime.tm_mon, nowTime.tm_mday) print nowDate.strftime('%Y%m%d') 我曾经做:datet…
System.DateTime.ParseExact:无法识别的格式字符串 - c#var timestamp = DateTime.ParseExact("20140101T000000Z", "YYYYMMDDThhmmssZ", CultureInfo.InvariantCulture); System.FormatException was unhandled by user code HRe…
LeetCode题解计算机为什么是基于二进制的?可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制