我想在 UTC 中获取特定时区的午夜时间。例如考虑我的本地计算机时区为 +05:30 。请看下面的截图。我使用https://www.epochconverter.com/网站进行了转化。
在上面的示例中,我在 +05:30 中输入午夜时间,并为此提供了UTCtime。
注意:我将机器时区重置为(UTC)协调世界时。
所以我想在这里找到UTC日期时间。为此,我存储了用户时区信息。我使用以下代码获取时区信息。
TimeZoneInfo userTz = TimeZoneInfo.FindSystemTimeZoneById(LoginSessionDO.TimeZoneId);
因此,我想在 UTC 中找到任何时区的午夜时间。我该如何在C#中做到这一点?
例如+05:30-2018-07-07 00:00:00 UTC- 2018-07-06 18:30:00
很抱歉未解决的问题。我将解释我的情况。
编辑:-
我已经在包含Sql server
列的dateofactivity
表中存储了一些用户的活动数据。所有记录日期时间都存储在UTC中。因此,在前端,我想从午夜(当几天开始)获取用户今天的所有活动记录。如果用户处于+05:30
时区,并且他想获取所有 2018年7月7日00:00:00 记录,那么我需要通过 2018年7月6日18:30:00 现在假设另一个用户位于欧洲/阿姆斯特丹(CEST)GMT +02:00 ,因此想在UTC中找到欧洲/阿姆斯特丹的午夜时间。
答案 0 :(得分:4)
在您当地的时区中获取午夜时间,获取您所在时区的时区信息,然后致电# lower <- 0; upper <- 10
lower <- c(0, 0); upper <- c(10, 10)
nms <- paste0("p", seq_along(upper))
names(lower) <- names(upper) <- nms
f <- function(x, ...) {
with(list(...), if (...length() == 1) p1 * x else p1 * x + p2)
}
fo <- sprintf("demand ~ f(Time, %s)", toString(paste(nms, "=", nms)))
nlrob(fo, data = BOD, lower = lower, upper = upper, method = "tau")
ConvertTimeToUtc
答案 1 :(得分:2)
使用DateTimeOffset
。
它需要一个DateTime
和一个TimeSpan
作为偏移量,您可以将其用作时区,并且具有一个ToUniversalTime
方法。
也有涵盖此主题的优质文档: https://docs.microsoft.com/en-us/dotnet/standard/datetime/
答案 2 :(得分:1)
var midNightTime = new DateTime(2018, 7, 7, 0, 0, 0);
TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); // USE YOUR TIMEZONE INFO HERE INSTEAD.
DateTime dateTimeInZone = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(midNightTime, timeZone.StandardName);
DateTime universalTime = dateTimeInZone.ToUniversalTime();
如果您只是在寻找偏移量,请参见此处-Get Timezone Offset of Server in C#
答案 3 :(得分:-1)
现在UTC时间:
TEMP.file
解析为UTC:
DateTime.UtcNow()
解析为本地时间:
DateTime.Parse("2018-05-08 12:00:00").ToUniversalTime()