opc时间戳问题

来源:互联网 发布:淘宝网金丝绒 编辑:程序博客网 时间:2024/06/03 21:34
opc客户端读取opc服务端的时间是utc时间,比系统时间少大约8小时。需要转换,如:  t = t.Add(DateTime.Now - DateTime.UtcNow);
以下转自:http://www.cnblogs.com/TankXiao/p/3130820.html

经常发现很多地方使用一个时间戳表示时间。比如: 1370838759  表示 2013年6月10日 12:32:39。 我们就需要一个工具,方便地转换这种时间格式

什么是时间戳?

时间戳, 又叫Unix Stamp. 从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

 

C# 时间戳转换为普通时间

复制代码
        // 时间戳转为C#格式时间        private DateTime StampToDateTime(string timeStamp)        {            DateTime dateTimeStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));            long lTime = long.Parse(timeStamp + "0000000");            TimeSpan toNow = new TimeSpan(lTime);                         return dateTimeStart.Add(toNow);        }        // DateTime时间格式转换为Unix时间戳格式        private int DateTimeToStamp(System.DateTime time)        {            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));            return (int)(time - startTime).TotalSeconds;        }
复制代码

 

 

源代码下载

【点击这下载源代码】  请用VS2010打开

 

 

附: C# 使用技巧 (连载中, 敬请期待)

C# 技巧(1) C# 转换时间戳

C# 技巧(2) C# 操作 JSON


0 0