我想知道从1970/1/1到今天的太平洋标准时间上午9点为止经过了多少秒。我该如何在C#中做到这一点?
我在前端应用程序中需要此功能,其中每个设备可以具有不同的时区。但是无论如何,我需要从今天上午9点(PST)时区过去几秒钟。
答案 0 :(得分:0)
如果您的服务器设置为使用PST时间,则可以执行以下操作
是这样的:
TimeSpan test = DateTime.Now - new DateTime(1970, 01, 01);
MessageBox.Show(test.TotalSeconds.ToString());
对于一个班轮:
MessageBox.Show((DateTime.Now - new DateTime(1970, 01, 01))
.TotalSeconds.ToString());
如果您不能保证计算机上正在使用PST,则您的代码将运行,您可以这样声明时区
var zone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
var utcNow = DateTime.UtcNow;
var pacificNow = TimeZoneInfo.ConvertTimeFromUtc(utcNow, zone);
MessageBox.Show((pacificNow - new DateTime(1970, 01, 01))
.TotalSeconds.ToString());
希望这会有所帮助
答案 1 :(得分:0)
TimeZoneInfo destTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
int timeZoneDiffSeconds = (int) destTimeZone.BaseUtcOffset.Subtract(TimeZoneInfo.Local.BaseUtcOffset).TotalSeconds;
DateTime todayLocal9Am = DateTime.Today.Date + new TimeSpan(9, 0, 0);
Int32 unix9AmLocalTime = (Int32) (todayLocal9Am.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
Int32 unix9AmPstTime = unix9AmLocalTime - Math.Abs(timeZoneDiffSeconds);
Console.WriteLine(unix9AmPstTime);
Console.Read();