C# 时间戳(TimeStamp)与时间(DateTime)的互相转换

  什么是时间戳:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

  时间戳在线转换网址:https://tool.lu/timestamp,时间戳的转换网址有很多,经常用的还有站长工具。

下附代码,在控制台中粘贴在启动类即可使用,需引用(using System)命名空间 ;

/// <summary>
/// 取时间戳,高并发情况下会有重复。想要解决这问题请使用sleep线程睡眠1毫秒。
/// </summary>
/// <param name="AccurateToMilliseconds">精确到毫秒</param>
/// <returns>返回一个长整数时间戳</returns>
public static long GetTimeStamp(bool AccurateToMilliseconds = false)
{
if (AccurateToMilliseconds)
{

// 使用当前时间计时周期数(636662920472315179)减去1970年01月01日计时周期数(621355968000000000)除去(删掉)后面4位计数(后四位计时单位小于毫秒,快到不要不要)再取整(去小数点)。

//备注:DateTime.Now.ToUniversalTime不能缩写成DateTime.Now.Ticks,会有好几个小时的误差。

//621355968000000000计算方法 long ticks = (new DateTime(1970, 1, 1, 8, 0, 0)).ToUniversalTime().Ticks;

return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000; 

}
else
{

//上面是精确到毫秒,需要在最后除去(10000),这里只精确到秒,只要在10000后面加三个0即可(1秒等于1000毫米)。
return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
}
}
/// <summary>
/// 时间戳反转为时间,有很多中翻转方法,但是,请不要使用过字符串(string)进行操作,大家都知道字符串会很慢!
/// </summary>
/// <param name="TimeStamp">时间戳</param>
/// <param name="AccurateToMilliseconds">是否精确到毫秒</param>
/// <returns>返回一个日期时间</returns>
public static DateTime GetTime(long TimeStamp, bool AccurateToMilliseconds = false)
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
if (AccurateToMilliseconds)
{
return startTime.AddTicks(TimeStamp * 10000);
}
else
{
return startTime.AddTicks(TimeStamp * 10000000);
}
}

原文地址:https://www.cnblogs.com/wrlooo/p/12383439.html

时间: 2024-10-24 02:15:11

C# 时间戳(TimeStamp)与时间(DateTime)的互相转换的相关文章

mysql数据库时间戳与正常时间格式之间的转换

mysql时间转换成时间戳create_time between UNIX_TIMESTAMP('2015-11-20 00:00:00') and UNIX_TIMESTAMP('2015-11-20 23:59:59') 时间戳转换成yyyy-mm-dd格式FROM_UNIXTIME(create_time,'%Y-%m-%d') < '2015-11-12'

python中时间戳,datetime 和时间字符串之间得转换

# datetime时间转为字符串def Changestr(datetime1):    str1 = datetime1.strftime('%Y-%m-%d %H:%M:%S')    return str1 # 字符串时间转为时间戳def Changetime(str1):    Unixtime = time.mktime(time.strptime(str1, '%Y-%m-%d %H:%M:%S'))    return Unixtime # datetime时间转为时间戳def

Python中time模块和datetime模块的常用操作以及几种常用时间格式间的转换

最常见以及常用的几种时间格式 1.时间戳(timestamp),时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量. 2.时间元组(struct_time),共有九个元素组. 3.格式化时间(format time ),可以格式化为固定或者自定义格式,增加可读性. #!/usr/bin/env python # -*- coding:utf-8 -*- import time #时间戳格式,默认获取当前时间 1500029143.7640195 timestamp = tim

python timestamp和datetime之间的转换

做开发中难免时间类型之间的转换, 最近就发现前端js和后端django经常要用到这个转换, 其中jsDate.now()精确到毫秒,而Python中Datetime.datetime.now()是精确到微秒的. 1. 字符串日期时间转换成时间戳 # '2015-08-28 16:43:37.283' --> 1440751417.283 # 或者 '2015-08-28 16:43:37' --> 1440751417.0 def string2timestamp(strValue): try

Unix时间戳转日期时间格式,C#、Java、Python各语言实现!

之前有个Q上好友没事问我,怎么自己写Unix时间戳转日期时间?于是我就顺手写了个C#版本给他!最近想起来,就萌发多写几个语言的版本分享,权当练习思路外加熟悉另外两种语言. 先说转换步骤 先处理年份,从1970年开始处理,根据平年闰年的总秒数,先得到年,剩余的秒数再求月份: 根据剩余秒数求得月份,因为2月的缘故,同样需要处理平年闰年': 得天数,直接除以每天的总秒数,然后取得天: 取小时.分钟.秒: Python版本: # -*- coding: UTF-8 -*- from datetime i

Python 日期和时间 —— datetime

Python 日期和时间 —— datetime Python提供了多个内置模块用于操作日期时间,如calendar,time,datetime.time提供的接口与C标准库time.h基本一致.其中应用最广的是datetime,相比于time模块,datetime模块的接口则更直观.更容易调用. datetime 模块为日期和时间处理同时提供了简单和复杂的方法.支持日期和时间算法的同时,实现的重点在于更有效的处理和格式化输出.该模块还支持时区处理.本文对 datetime库进行学习. date

sql server时间戳timestamp

sql server时间戳timestamp 在SQL Server中联机丛书是这样说的: SQL Server timestamp 数据类型与时间和日期无关.SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的相对顺序.实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法.每次修改页时,都会使用当前的 @@DBTS 值对其做一次标记,然后 @@DBTS 加1.这样做足以帮助恢复过程确定页修改的相对次序,但是 timestamp 值与时

C#获取时间戳和时间戳反转为时间方法

/// <summary> /// 取时间戳,高并发情况下会有重复.想要解决这问题请使用sleep线程睡眠1毫秒. /// </summary> /// <param name="AccurateToMilliseconds">精确到毫秒</param> /// <returns>返回一个长整数时间戳</returns> public static long GetTimeStamp(bool AccurateTo

js时间戳和时间格式之间的转换

js里面的data对象的运行 很实用的东西,, 直接上代码: //时间戳转换成日期时间2014-8-8 下午11:40:20 function formatDate(ns){ return new Date(parseInt(ns) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " "); } //时间戳转换成八位日期2014-5-5 function userDate(uData){ var

JS将时间戳转化为时间

//将时间戳转化为时间 function timestampToTime(timestamp) { var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 Y = date.getFullYear() + "-"; M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'; D = date.