C# 时间戳与 标准时间互转
C# 时间戳与 标准时间的转其实不难,但需要注意下,基准时间的问题。
格林威治时间起点: 1970 年 1 月 1 日的 00:00:00.000
北京时间起点:1970 年 1 月 1 日的 08:00:00.000
昨天我在这里踩坑了,我用的是格林威治时间计算的时间戳,给计算机监控系统。计算机监控系统拿到时间戳换算后的时间总是跟我的对不上。后来发现是这个原因;
1.标准时间转时间戳的方法
/// <summary>
/// 获取开停机的时间戳
/// </summary>
/// <param name="dtime"></param>
/// <returns></returns>
public int getTimeSpan(DateTime dtime)
{
//格林威治时间
//var timeSpan_Greenwich = dtime - new DateTime(1970, 1, 1, 0, 0, 0);
//标准北京时间
var timeSpan = dtime - new DateTime(1970, 1, 1, 8, 0, 0);
//或者这样写北京标准时间
var timeSpan_beijing = dtime - TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0));
return (int)timeSpan.TotalSeconds;
}
2.时间戳转为标准时间
/// <summary>
/// 时间戳Timestamp转换成日期
/// </summary>
/// <param name="timeStamp"></param>
/// <returns></returns>
private DateTime GetDateTime(int timeStamp)
{
SaveCommand("timeStamp:" + timeStamp); DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
long lTime = ((long)timeStamp * 10000000);
TimeSpan toNow = new TimeSpan(lTime);
DateTime targetDt = dtStart.Add(toNow); if (string.IsNullOrEmpty(targetDt.ToString()))
{
targetDt = DateTime.Now;
} SaveCommand("time:" + targetDt.ToString()); return targetDt;
}
3.TimeZone.CurrentTimeZone.ToLocalTime()方法
这个方法将一个 DateTime 对象,获取其值为对应于 time 的本地时间。可以看到这个方法格林威治的时间 1970-01-01 00:00:00 转为了北京时间 1970-01-01 08:00:00
C# 时间戳与 标准时间互转的更多相关文章
- Linux时间戳和标准时间的互转
转http://hi.baidu.com/taolizao/blog/item/2d6f9a1ba50ef3eae0fe0ba9.html 在LINUX系统中,有许多场合都使用时间戳的方式表示时间 ...
- [转载]vb 时间戳与时间互转
转自:https://blog.csdn.net/boys1999/article/details/23298415 vb 时间戳与时间互转 2014年04月09日 21:13:47 boys1999 ...
- .net 时间戳和日期互转 【转】http://www.cnblogs.com/zhuiyi/p/5307540.html
.net 时间戳和日期互转 1.时间戳转日期public static DateTime IntToDateTime(int timestamp){ return TimeZone.CurrentTi ...
- js 时间戳转时间工具类 js时间戳与时间互转
/** * 时间戳格式化函数 * @param {string} format 格式 * @param {int} timestamp 要格式化的时间 默认为当前时间 * @return {strin ...
- js 时间戳和日期互转
// 获取当前时间戳(以s为单位) var timestamp = Date.parse(new Date()); timestamp = timestamp / 1000; //当前时间戳为:140 ...
- js 时间戳 中国标准时间 年月日 日期之间的转换
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- mysql—MySQL数据库中10位时间戳转换为标准时间后,如何对标准时间进行加减X天处理
在这篇的缘由:问题:"FROM_UNIXTIME(timeline,'%Y-%m')"的结果(2020-06)做月份增加1月或者减少1月的计算处理,想着直接在结果上+1但是,结果为 ...
- lua 时间戳和时间互转
1.时间戳转换成时间 local t = 1412753621000 function getTimeStamp(t) return os.date("%Y%m%d%H", ...
- .net 时间戳和日期互转
1.时间戳转日期 public static DateTime IntToDateTime(int timestamp) { ,,)).AddSeconds(timestamp); } 调用: ...
- Asp.Net时间戳与时间互转
/// <summary> /// 时间戳转成时间类型 /// </summary> /// <param name="timeStamp">& ...
随机推荐
- 题解:ssy的队列
题目链接 题目描述 SSY是班集体育委员,总喜欢把班级同学排成各种奇怪的队形,现在班级里有 \(N\) 个身高互不相同的同学,请你求出这 \(N\) 个人的所有排列中任意两个相邻同学的身高差均不为给定 ...
- 一键关闭 Win11 系统广告「GitHub 热点速览」
不知道读者中有多少人早已对 Windows 11 系统自带的广告感到厌烦,却又不知道如何关闭它们? 虽然网上有详细的关闭教程,但是都需要逐一手动操作,不是很方便.所以,今天「GitHub 热点速览」给 ...
- 深度Linux deepin更新,防火墙操作
获取更新 sudo apt-get update 更新系统 sudo apt-get dist-upgrade -y 清理更新缓存 sudo apt-get autoclean 防火墙操作 sudo ...
- golang cron定时任务简单实现
目录 星号(*) 斜线(/) 逗号(,) 连字符 (-) 问好 (?) 常用cron举例 使用说明 golang 实现定时服务很简单,只需要简单几步代码便可以完成,不需要配置繁琐的服务器,直接在代码中 ...
- 08. C语言函数
[函数基础] 函数用于将程序代码分类管理,实现不同功能的代码放在不同函数内,一个函数等于一种功能,其它函数可以调用本函数执行. C语言规定所有的指令数据必须定义在函数内部,比如之前介绍的程序执行流程控 ...
- 利用pearcmd实现裸文件包含
利用pearcmd实现裸文件包含 在 ctf 中,常常有这样一类题: 题目很简单,一般围绕一个 include 函数展开. 例: ctfshow 元旦水友赛 easy_include 这类题目没有提供 ...
- 从XML配置角度理解Spring AOP
本文分享自华为云社区<Spring高手之路18--从XML配置角度理解Spring AOP>,作者: 砖业洋__. 1. Spring AOP与动态代理 1.1 Spring AOP和动态 ...
- Cookie的过期时间为Session在微信浏览器失效
前言 最近一次迭代上线,结果临了上线当晚,被我无疑间发现一个bug,之前测试小伙伴没测出来.Cookie的过期时间为Session在微信浏览器失效 ..net framework webform 项目 ...
- pageoffice 6 实现数据区域填充(插入文本、图片、word、excel等)
在实际的Word文档开发中,经常需要自动填充数据到Word模板中,以生成动态的Word文档. 例如: 1.我们可以根据数据库表中已保存的个人信息,设计好一个简历模板docx文件,然后通过代码将这些个人 ...
- Docker 必知必会4----容器之间的通信
前面几篇文章,我们基本聊了docker的基本概念,以及基本的操作手段: https://www.cnblogs.com/jilodream/p/18177695 初识dockerhttps://w ...