C# 获取当前总毫秒数的实例讲解

在.Net下DateTime.Ticks获得的是个long型的时间整数,具体表示是至0001 年 1 月 1 日午夜 12:00:00 以来所经过时间以100纳秒的数字。转换为秒为Ticks/10000000,转换为毫秒Ticks/10000。

如果要获取从1970年1月1日至当前时间所经过的毫秒数,代码如下:

//获取当前Ticks
long currentTicks= DateTime .Now.Ticks;
DateTime dtFrom = new DateTime (1970, 1, 1, 0, 0, 0, 0);
long currentMillis = (currentTicks - dtFrom.Ticks) / 10000;

类似于Java中:System.currentTimeMillis()

换算单位:

1秒 = 1000毫秒

1毫秒 = 1000微妙

1微秒 = 1000纳秒

补充:C# 将时间戳 byte[] 转换成 datetime 的几个方法

推荐方法:

DateTime now = DateTime.Now;
byte[] bts = BitConverter.GetBytes(now.ToBinary());
DateTime rt = DateTime.FromBinary(BitConverter.ToInt64(bts, 0));

用了2个byte,日期范围 2000-01-01 ~ 2127-12-31,下面是转换方法:

 // Date -> byte[2]
 public static byte[] DateToByte(DateTime date)
 {
  int year = date.Year - 2000;
  if (year < 0 || year > 127)
  return new byte[4];
  int month = date.Month;
  int day = date.Day;
  int date10 = year * 512 + month * 32 + day;
  return BitConverter.GetBytes((ushort)date10);
 }
 // byte[2] -> Date
 public static DateTime ByteToDate(byte[] b)
 {
  int date10 = (int)BitConverter.ToUInt16(b, 0);
  int year = date10 / 512 + 2000;
  int month = date10 % 512 / 32;
  int day = date10 % 512 % 32;
  return new DateTime(year, month, day);
 } 

调用举例:

byte[] write = DateToByte(DateTime.Now.Date);
MessageBox.Show(ByteToDate(write).ToString("yyyy-MM-dd"));
/// <summary> 2. /// 将BYTE数组转换为DATETIME类型 3. /// </summary> 4. /// <param name="bytes"></param> 5. /// <returns></returns> 6. private DateTime BytesToDateTime(byte[] bytes)
 {
  if (bytes != null && bytes.Length >= 5)
  {
  int year = 2000 + Convert.ToInt32(BitConverter.ToString(new byte[1] { bytes[0] }, 0));
  int month = Convert.ToInt32(BitConverter.ToString(new byte[1] { bytes[1] }, 0));
  int date = Convert.ToInt32(BitConverter.ToString(new byte[1] { bytes[2] }, 0));
  int hour = Convert.ToInt32(BitConverter.ToString(new byte[1] { bytes[3] }, 0));
  int minute = Convert.ToInt32(BitConverter.ToString(new byte[1] { bytes[4] }, 0));
  DateTime dt = new DateTime(year, month, date, hour, minute, 0);
  return dt;
  }
  else19.  {
  return new DateTime();
  }
 }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • C#实现毫秒转换成时分秒的方法

    本文实例讲述了C#实现毫秒转换成时分秒的方法.分享给大家供大家参考.具体实现方法如下: public static String formatLongToTimeStr(Long l) { String str = ""; int hour = 0; int minute = 0; int second = 0; second = l.intValue() / 1000; if (second > 60) { minute = second / 60; second = seco

  • C#使用StopWatch获取程序毫秒级执行时间的方法

    本文实例讲述了C#使用StopWatch获取程序毫秒级执行时间的方法.分享给大家供大家参考.具体分析如下: 这个比时间通过DateTime在程序前后记录时间,然后通过TimeSpan相减的办法要精确,也更容易理解. using System.Diagnostics;//引用相关的命名空间 Stopwatch st=new Stopwatch ();//实例化类 st. Start();//开始计时 //需要统计时间的代码段 st.Stop();//终止计时 Response.Write(st.E

  • C#随机设置900-1100毫秒延迟的方法

    本文实例讲述了C#随机设置900-1100毫秒延迟的方法.分享给大家供大家参考.具体如下: using System; using System.Threading; ///<summary> /// A time delay of 900..1100 milliseconds ///</summary> namespace RobvanderWoude { class WaitASecond { static void Main( string[] args ) { // Cho

  • C# 获取当前总毫秒数的实例讲解

    在.Net下DateTime.Ticks获得的是个long型的时间整数,具体表示是至0001 年 1 月 1 日午夜 12:00:00 以来所经过时间以100纳秒的数字.转换为秒为Ticks/10000000,转换为毫秒Ticks/10000. 如果要获取从1970年1月1日至当前时间所经过的毫秒数,代码如下: //获取当前Ticks long currentTicks= DateTime .Now.Ticks; DateTime dtFrom = new DateTime (1970, 1,

  • SQL Server 在分页获取数据的同时获取到总记录数

    SQL Server 获取数据的总记录数,有两种方式: 1.先分页获取数据,然后再查询一遍数据库获取到总数量 2.使用count(1) over()获取总记录数量 SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY Id DESC) rn, COUNT(1) OVER() AS TotalCount, Id FROM dbo.T_User )a WHERE a.rn BETWEEN 1 AND 5 第二种方式既分页还能获取到总记录数量.就是多一个字

  • JS实现获取GIF总帧数的方法详解

    目录 前言 写在前面 思路分析 什么是Gif 组成结构 解析原理 数据块分析 Header Block Logical Screen Descriptor Global Color Table Graphics Control Extension Image Descriptor Image Data 实现代码 测试用例 插件地址 前言 有一个Gif图片,我们想要获取它的总帧数,超过一定帧数的图片告知用户不可上传,在服务端有很多现成的库可以使用,这种做法不是很友好,前端需要先将gif上传至服务端

  • 使用bitset实现毫秒级查询(实例讲解)

    前言 因为业务要求api的一次请求响应时间在10ms以内,所以传统的数据库查询操作直接被排除(网络io和磁盘io).通过调研,最终使用了bieset,目前已经正常运行了很久 bitset介绍 看JDK中的解释简直一头雾水,用我自己的理解概括一下 1.bitset的内部实现是long数组 2.set中每一个位的默认值为false(0) 3.bitset长度按需增长 4.bitset非线程安全 bitset关键方法分析 /** * Sets the bit at the specified inde

  • php生成毫秒时间戳的实例讲解

    php时间函数time()生成当前时间的秒数,但是在一些情况下我们需要获取当前服务器时间和GMT(格林威治时间)1970年1月0时0分0秒的毫秒数,与Java中的currentTimeMilis()函数一样. 例子: public function getCurrentMilis() { $mill_time = microtime(); $timeInfo = explode(' ', $mill_time); $milis_time = sprintf('%d%03d',$timeInfo[

  • python爬虫中抓取指数的实例讲解

    有一些数据我们是没法直观的查看的,需要通过抓取去获得.听到指数这个词,有的小伙伴们觉得很复杂,似乎只在股票的时候才听说的,比如一些数据的涨跌分析都是比较棘手的问题.不过指数对于我们的数据分析还是很有帮助的,今天小编就python爬虫中抓取指数得方法给大家带来讲解. 刚好这几天需要用到这个爬虫,结果发现baidu指数的请求有点变化,所以就改了改: import requests import sys import time word_url = 'http://index.baidu.com/ap

  • vue父组件中获取子组件中的数据(实例讲解)

    如下所示: <FormItem label="上传头像" prop="image"> <uploadImg :width="150" :height="150" :name="'avatar'" size="150px*150px" ref="avatar"></uploadImg> </FormItem> <Fo

  • python 获取list特定元素下标的实例讲解

    在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达目的地最近的车站,橱窗里面最贵的物品等等.怎么办?看下面 方法一: 利用数组自身的特性 a.index(target), 其中a是你的目标list,target是你需要的下标对应的值 a=[72, 56, 76, 84, 80, 88] print(a.index(76)) output: 2 但是,如果a中有多个76呢? 我们发现,这种方法仅仅能获取都第一个匹配的value的下标(可以试试o_o) 所以,我们看看我们的第二种方案

  • tensorflow 获取变量&打印权值的实例讲解

    在使用tensorflow中,我们常常需要获取某个变量的值,比如:打印某一层的权重,通常我们可以直接利用变量的name属性来获取,但是当我们利用一些第三方的库来构造神经网络的layer时,存在一种情况:就是我们自己无法定义该层的变量,因为是自动进行定义的. 比如用tensorflow的slim库时: <span style="font-size:14px;">def resnet_stack(images, output_shape, hparams, scope=None

  • js与jquery获取input输入框中的值实例讲解

    如何用javascript获取input输入框中的值,js/jq通过name.id.class获取input输入框中的value 先准备一段 HTML <input type="text" name"username" id="user" placeholder="用户名" class="uusr"><br> 一.jquery获取input文本框中的值 通过 name: $('inp

随机推荐