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

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

服务器之家 - 编程语言 - C# - C#实现时间戳的简单方法

C#实现时间戳的简单方法

2022-07-20 12:11Minotauros C#

这篇文章主要介绍了C#实现时间戳的简单方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

Introduction:

  在项目开发中,我们都经常会用到时间戳来进行时间的存储和传递,最常用的Unix时间戳(TimeStamp)是指格林尼治时间1970年1月1日0时(北京时间1970年1月1日8时)起至现在的总秒数(10位)或总毫秒数(13位);

Body:

  而在C#中.Net框架没有提供现成的获取时间戳的方式,这里分享一个自己实现的时间戳转换工具:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/// <summary>
 /// 时间工具类
 /// </summary>
 public static class DateTimeUtil
 {
   /// <summary>
   /// 时间戳计时开始时间
   /// </summary>
   private static DateTime timeStampStartTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
   /// <summary>
   /// DateTime转换为10位时间戳(单位:秒)
   /// </summary>
   /// <param name="dateTime"> DateTime</param>
   /// <returns>10位时间戳(单位:秒)</returns>
   public static long DateTimeToTimeStamp(DateTime dateTime)
   {
     return (long)(dateTime.ToUniversalTime() - timeStampStartTime).TotalSeconds;
   }
   /// <summary>
   /// DateTime转换为13位时间戳(单位:毫秒)
   /// </summary>
   /// <param name="dateTime"> DateTime</param>
   /// <returns>13位时间戳(单位:毫秒)</returns>
   public static long DateTimeToLongTimeStamp(DateTime dateTime)
   {
     return (long)(dateTime.ToUniversalTime() - timeStampStartTime).TotalMilliseconds;
   }
   /// <summary>
   /// 10位时间戳(单位:秒)转换为DateTime
   /// </summary>
   /// <param name="timeStamp">10位时间戳(单位:秒)</param>
   /// <returns>DateTime</returns>
   public static DateTime TimeStampToDateTime(long timeStamp)
   {
     return timeStampStartTime.AddSeconds(timeStamp).ToLocalTime();
   }
   /// <summary>
   /// 13位时间戳(单位:毫秒)转换为DateTime
   /// </summary>
   /// <param name="longTimeStamp">13位时间戳(单位:毫秒)</param>
   /// <returns>DateTime</returns>
   public static DateTime LongTimeStampToDateTime(long longTimeStamp)
   {
     return timeStampStartTime.AddMilliseconds(longTimeStamp).ToLocalTime();
   }
 }

One more thing:

  在C#中,DateTime和字符串类型类似,都是一个设计良好的不可变类型,但与字符串类型不同的是,DateTime是值类型,不会造成单独的堆内存消耗和垃圾回收开销,因此大大部分情况下都可以放心使用;

Conclusion:

  DateTime在使用时还有很多小技巧,博主后面会在新博文中分享出来和大家一起探讨。有关闰秒的话题可以自行Search,这里不做讨论。

总结

以上所述是小编给大家介绍的C#实现时间戳的简单方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

原文链接:http://www.cnblogs.com/minotauros/p/10773258.html

延伸 · 阅读

精彩推荐
  • C#C#中foreach循环对比for循环的优势和劣势

    C#中foreach循环对比for循环的优势和劣势

    循环语句是编程的基本语句,在C#中除了沿用C语言的循环语句外,还提供了foreach语句来实现循环,下面这篇文章主要给大家介绍了关于C#中foreach循环对比...

    郑小超6892022-01-21
  • C#Unity实现游戏卡牌滚动效果

    Unity实现游戏卡牌滚动效果

    这篇文章主要为大家详细介绍了Unity实现游戏卡牌滚动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    OneWord23311252022-03-11
  • C#轻松学习C#的foreach迭代语句

    轻松学习C#的foreach迭代语句

    轻松学习C#的foreach迭代语句, C#语言提供了一个for语句循环的捷径,而且还促进了集合类的更为一致,就是本文提到的foreach语句,感兴趣的小伙伴们可以参...

    C#教程网11372021-11-03
  • C#C# 6.0的属性(Property)的语法与初始值详解

    C# 6.0的属性(Property)的语法与初始值详解

    下面小编就为大家带来一篇C# 6.0的属性(Property)的语法与初始值详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    C#教程网5762021-11-30
  • C#C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法

    C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符

    本文主要介绍了C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法:利用反射,读取一个类型的所有属性,然后再把属性转换成XM...

    弎吩锺熱℃6782021-12-14
  • C#利用WCF双工模式实现即时通讯

    利用WCF双工模式实现即时通讯

    这篇文章主要介绍了利用WCF双工模式实现即时通讯的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    会长4142021-12-07
  • C#c#中的泛型委托详解

    c#中的泛型委托详解

    本文主要介绍了c#中的泛型委托。具有很好的参考价值,下面跟着小编一起来看下吧...

    WhiteTaken11402021-12-20
  • C#分享WCF文件传输实现方法---WCFFileTransfer

    分享WCF文件传输实现方法---WCFFileTransfer

    这篇文章主要介绍了分享WCF文件传输实现方法---WCFFileTransfer,需要的朋友可以参考下...

    C#教程网3732021-11-02