首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在C#中获取今天上午9点的太平洋标准时间纪元

如何在C#中获取今天上午9点的太平洋标准时间纪元
EN

Stack Overflow用户
提问于 2018-07-11 18:56:42
回答 2查看 326关注 0票数 -4

我想知道从1970年1月1日到今天太平洋标准时间上午9点已经过去了多少秒。我如何在C#中做到这一点?

我需要在前端应用程序,其中每个设备可以有不同的时区。但不管怎样,我需要从今天的太平洋标准时间上午9点开始经过的秒数。

EN

回答 2

Stack Overflow用户

发布于 2018-07-11 19:00:34

如果您的服务器设置为使用PST时间,则可以执行以下操作

是这样的:

代码语言:javascript
复制
  TimeSpan test = DateTime.Now - new DateTime(1970, 01, 01);
  MessageBox.Show(test.TotalSeconds.ToString());

对于一个班轮:

代码语言:javascript
复制
 MessageBox.Show((DateTime.Now - new DateTime(1970, 01, 01))
     .TotalSeconds.ToString());

如果您不能保证您的代码将在运行的计算机上使用PST,您可以这样声明时区

代码语言:javascript
复制
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());

希望这能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2018-07-11 19:05:07

代码语言:javascript
复制
    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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51283730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档