.Net基于TimeZone在午夜发送消息?

时间:2009-10-16 23:44:20

标签: .net timezone

我有一些数据点,包括gmt的偏移量(以秒为单位)。我想在午夜通过套接字发送消息。发送消息没有问题,我只是在根据偏移确定时间时遇到问题。

有人对此有任何建议吗?

2 个答案:

答案 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显示当地时区的时间。 棘手的部分可能是找出什么是基准时间,是今天午夜还是昨天午夜?