服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C# 获取当前总毫秒数的实例讲解

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

2022-10-27 13:29凡梦_ C#

这篇文章主要介绍了C# 获取当前总毫秒数的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

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

?
1
2
3
4
//获取当前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 的几个方法

推荐方法:

?
1
2
3
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,下面是转换方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 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);
}

调用举例:

?
1
2
byte[] write = DateToByte(DateTime.Now.Date);
MessageBox.Show(ByteToDate(write).ToString("yyyy-MM-dd"));
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/// <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();
  }
 }

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

原文链接:https://blog.csdn.net/mpegfour/article/details/78611693

延伸 · 阅读

精彩推荐
  • C#c# HashSet的扩容机制需要注意的

    c# HashSet的扩容机制需要注意的

    这篇文章主要介绍了c# HashSet的扩容机制需要注意的两个地方,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    一线码农4832022-09-15
  • C#Windows下C#的GUI窗口程序中实现调用Google Map的实例

    Windows下C#的GUI窗口程序中实现调用Google Map的实例

    这篇文章主要介绍了Windows下C#的GUI窗口程序中实现调用Google Map的实例,如果只想调用浏览器打开网页的话可以看文章最后的方法,需要的朋友可以参考下...

    hzy37745802021-11-18
  • C#利用C#编写扫雷游戏(附源码)

    利用C#编写扫雷游戏(附源码)

    扫雷游戏相信不用给大家过多介绍,大家基本都玩过,下面这篇文章主要给大家介绍了关于如何利用C#编写扫雷游戏的相关资料,文中通过示例代码介绍的...

    江湖逍遥6482022-03-07
  • C#C#如何使用Bogus创建模拟数据示例代码

    C#如何使用Bogus创建模拟数据示例代码

    这篇文章主要给大家介绍了关于C#如何使用Bogus创建模拟数据的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价...

    Lamond Lu8342022-07-21
  • C#C#前端验证和后台验证代码实例

    C#前端验证和后台验证代码实例

    这篇文章主要介绍了C#前端验证和后台验证代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    lkjhgfdsa1235562022-09-26
  • C#C#简单邮件群发通用类

    C#简单邮件群发通用类

    这篇文章主要为大家分享了简单的C#邮件群发通用类,代码简单实用,感兴趣的小伙伴们可以参考一下...

    上善,若水6752021-11-15
  • C#C#表达式目录树示例详解

    C#表达式目录树示例详解

    这篇文章主要给大家介绍了关于C#表达式目录树的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    一只独行的猿10762022-10-13
  • C#C#实现绑定Combobox的方法

    C#实现绑定Combobox的方法

    这篇文章主要介绍了C#实现绑定Combobox的方法,涉及Combobox参数设置的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    我心依旧10682021-10-22