C#中DateTime.Ticks属性及Unix时间戳转换

1.相关概念

DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒)。

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

1秒    = 1000毫秒

1毫秒 = 1000微妙

1微秒 = 1000纳秒

因此, 1毫秒 = 10000纳秒

2.DateTime变量与时间戳的相互转换

在实际使用中经常需要精确到毫秒,因此这里下面两个函数的使用单位都是“毫秒”,若要转换成“秒”,可以再除以或乘以1000。

/// <summary>
/// 获取1970-01-01至dateTime的毫秒数
/// </summary>
public long GetTimestamp(DateTime dateTime)
{
    DateTime dt1970 = new DateTime(1970, 1, 1, 0, 0, 0, 0);
    return (dateTime.Ticks - dt1970.Ticks) / 10000;
}

/// <summary>
/// 根据时间戳timestamp(单位毫秒)计算日期
/// </summary>
public DateTime NewDate(long timestamp)
{
    DateTime dt1970 = new DateTime(1970, 1, 1, 0, 0, 0, 0);
    long t = dt1970.Ticks + timestamp * 10000;
    return new DateTime(t);
}
时间: 2024-11-05 19:01:28

C#中DateTime.Ticks属性及Unix时间戳转换的相关文章

C#unix时间戳转换

/// <summary> /// 日期转换成unix时间戳 /// </summary> /// <param name="dateTime"></param> /// <returns></returns> public static long DateTimeToUnixTimestamp(DateTime dateTime) { var start = new DateTime(1970, 1, 1, 0,

C# DateTime 与Unix时间戳转换

由于项目需要采用C/S和B/S混合设计,BS端采用PHP,CS端采用.net,共同读取mysql数据库,时间问题的解决方案 /// <summary> /// 将Unix时间戳转换为DateTime类型时间 /// </summary> /// <param name="d">double 型数字</param> /// <returns>DateTime</returns> public System.DateT

C# DateTime时间格式转换为Unix时间戳格式

double ntime=dateTimeToUnixTimestamp(DateTime.Now); long g1 = GetUnixTimestamp(); long g2 = ConvertDateTime2Long(DateTime.Now); public double dateTimeToUnixTimestamp(DateTime datetime) { return (datetime - new DateTime(1970, 1, 1).ToLocalTime()).Tota

Excel技巧|如何在Excel中快速的批量将unix时间戳转化为北京时间

本文标签:  Excel技巧 unix时间戳转化北京时间 Excel时间戳转化北京时间 互联网杂谈 批量将将unix时间戳转化为北京时间 方法/步骤 单击要获得北京时间的那一列,右键,选择[设置单元格格式],在弹出的窗口中,左侧选择 [日期],右侧选择你想要的时间格式,点击确定. 选中其中一个单元格,输入公式 =(A2+8*3600)/86400+70*365+19 其中,A2是要转化的时间戳的单元格. 输入完公式,按下[回车键]. 该时间戳即转化为北京时间. 选中上面转化好的北京时间单元格,鼠

一个unix时间戳转换的小程序

长期查看监控数据, 监控数据的时间戳格式是标准的unix时间戳, 查看费劲, 于是乎自己写了一个小程序 代码如下 #!/bin/env python #coding:utf8 #unix时间戳转换 import sys, time, os, re def com_judge():     '''     @判断执行程序是否后跟参数     '''     com_count = len(sys.argv)     if com_count == 2:         content = sys.

js unix时间戳转换

一.unix时间戳转普通时间: var unixtime=1358932051; var unixTimestamp = new Date(unixtime* 1000); commonTime = unixTimestamp.toLocaleString(); alert("普通时间为:"+commonTime); 二.普通时间转unix时间戳 var str ="2013-01-01 00:00:00"; str = str.replace(/-/g,"

php中datetime时间和int时间互相转换

int时间转换datetime时间 echo date("Y-m-d H:i:s", 1210003200); datetime时间转换int时间 echo  strtotime("2008-9-27 16:30:30"); php中datetime时间和int时间互相转换

java算法unix时间戳转换

import java.util.Scanner;public class Timel { private static Scanner in; public static void main(String[] args) {//实现当前系统时间戳的转换,输入一个有效的时间进行转换        System.out.println("时光机系统开启,当前北京时间:");        TimeCp now=new TimeCp(System.currentTimeMillis()/1

Unix时间戳转换

import time def timestamp_datetime(value):     format = '%Y-%m-%d %H:%M:%S'     # value为传入的值为时间戳(整形),如:1332888820     value = time.localtime(value)     ## 经过localtime转换后变成     ## time.struct_time(tm_year=2012, tm_mon=3, tm_mday=28, tm_hour=6, tm_min=