日期型数据转换成C#长整型数据

开发 后端
这里介绍日期型数据转换成C#长整型数据,由于各种数据库对日期型的定义和处理是不一样的,各种语言对日期型数据的定义的处理也各不相同,因为,我宁愿将日期型数据转换成长整型数据再保存到数据库中。

C#语言还是比较常见的东西,这里我们主要介绍日期型数据转换成C#长整型数据,包括介绍DateTime 的构造函数等方面。

日期型数据转换成C#长整型数据

为什么要将日期型数据转换成C#长整型数据呢?原因很多,但就我个人来说,经常将它用于数据库的日期存储。由于各种数据库对日期型的定义和处理是不一样的,各种语言对日期型数据的定义的处理也各不相同,因为,我宁愿将日期型数据转换成长整型数据再保存到数据库中。虽然也可以使用字符串来保存,但使用字符串也会涉及到许多问题,如区域等问题,而且,它需要比保存C#长整型数据更多的空间。

日期型数据,在 C# 中的参与运算的时候,应该也是转换为长整型数据来运算的。它的长整型值是自 0001 年 1 月 1 日午夜 12:00 以来所经过时间以 100 毫微秒为间隔表示时的数字。这个数在 C# 的 DateTime 中被称为 Ticks(刻度)。DateTime 类型有一个名为 Ticks 的长整型只读属性,就保存着这个值。如此,要从一个 DataTime 型数据得到 long 型值就非常简单了,只需要读出 DataTime 对象的 Ticks 值即可,如:

  1. long longDate = DateTime.Now.Ticks; 

DateTime 的构造函数中也提供了相应的,从长整型数据构造 DateTime 型数据的函数:DateTime(long)。如:

  1. DateTime theDate = new DateTime(longDate); 

但这样对于很多 VB6 程序员来说,是给他们出了一道难题,因为 VB6 中的日期型数据内部是以 Double 型表示的,将其转换为长整型后得到的仅仅是日期,而没有时间。如何协调这两种日期类型呢?

System.DateTime 提供了 double ToOADate() 和 static DateTime FromOADate(double) 两个函数来解决这个问题。前者将当前对象按原来的 double 值输出,后者则从一个 double 值获得一个 System.DateTime 对象。举例如下:

  1. private void TestDateTimeLong() {  
  2. double doubleDate = DateTime.Now.ToOADate();  
  3. DateTime theDate = DateTime.FromOADate(doubleDate);  
  4. this.textBox1.Text = "";  
  5. this.textBox1.AppendText("Double value of now: " + doubleDate.ToString() + "\n");  
  6. this.textBox1.AppendText("DateTime from double value: " + theDate.ToString() + "\n");  

运行结果:

  1. Double value of now: 37494.661541713  
  2. DateTime from double value: 2002-8-26 15:52:37 

【编辑推荐】

  1. C#创建Windows服务详细介绍
  2. C#动态编译简单剖析
  3. C#静态字段与实例字段分析
  4. C#匿名方法详细剖析
  5. C#命名属性简单描述
责任编辑:佚名 来源: IT168
相关推荐

2009-08-28 11:16:51

C#日期型数

2009-08-28 10:50:17

C#字节数组转换成字符

2009-08-28 15:49:35

C# Control类

2009-08-24 14:20:13

C# 强制类型转换

2010-09-09 11:02:36

SQL函数IP

2011-03-23 09:54:47

数据模型数据库设计

2009-08-07 13:39:13

C#定义整型数组

2022-07-27 09:20:40

MySQL数据库测试

2009-08-12 16:26:27

C#数据类型转换

2009-09-01 16:35:55

C#操作String数

2009-08-13 16:44:45

C#数据转换

2009-08-05 14:09:04

C#日期转换

2020-05-29 09:34:28

httphttps网络协议

2009-10-26 10:08:44

VB.NET工程转换成

2022-10-12 09:55:14

xls文件xlsx文件

2021-08-31 09:12:18

StringIntLong

2011-02-25 10:22:03

ibmdwXMLDB2

2021-06-07 17:30:23

LinuxASCII图片转换

2011-12-09 21:13:29

iOS

2021-07-14 14:50:08

LinuxASCII图片
点赞
收藏

51CTO技术栈公众号