我有一些数据点,包括gmt的偏移量(以秒为单位)。我想在午夜通过套接字发送消息。发送消息没有问题,我只是在根据偏移确定时间时遇到问题。
有人对此有任何建议吗?
答案 0 :(得分:1)
如果您尝试以秒为单位获得当前时间偏移量,则可以执行以下操作:
TimeSpan offset = TimeSpan.FromSeconds(offsetInSecondsFromMidnight);
DateTime initial = DateTime.Now.Date; // Midnight, today - for time, the date doesn't really matter, but we want midnight
DateTime timeWithOffset = initial + offset; // This will have the correct time of day now
答案 1 :(得分:1)
由于UTC和GMT相同,您可以使用此代码。
int secondsOffset = 100;
DateTime utcMidnight = DateTime.SpecifyKind(DateTime.Today, DateTimeKind.Utc);
DateTime utcWithOffset = utcMidnight.AddSeconds(secondsOffset);
Console.WriteLine("Offset on UTC: " + utcWithOffset);
Console.WriteLine("Offset on local time: " + utcWithOffset.ToLocalTime());
第一个WriteLine显示UTC时区的时间。 第二个Writeline显示当地时区的时间。 棘手的部分可能是找出什么是基准时间,是今天午夜还是昨天午夜?