没有合适的资源?快使用搜索试试~ 我知道了~
日期和时间,在我们开发中非常重要。DateTime在C#中,专门用来表达和处理日期和时间。 本文算是多年使用DateTime的一个总结,包括DateTime对象的整体应用,以及如何处理不同的区域、时区、格式等内容。 一、什么是DateTime 跟我们想的不一样,DateTime不是一个类(class),而是一个结构(struct),它存在于System命名空间下,在Dotnet Core中,处于System.Runtime.dll中。 看一下DateTime的定义: public struct DateTime : IComparable, IComparable<DateTime>, IC
资源推荐
资源详情
资源评论
详解详解c# 中的中的DateTime
日期和时间,在我们开发中非常重要。DateTime在C#中,专门用来表达和处理日期和时间。
本文算是多年使用DateTime的一个总结,包括DateTime对象的整体应用,以及如何处理不同的区域、时区、格式等内容。
一、什么是一、什么是DateTime
跟我们想的不一样,DateTime不是一个类(class),而是一个结构(struct),它存在于System命名空间下,在Dotnet Core中,
处于System.Runtime.dll中。
看一下DateTime的定义:
public struct DateTime : IComparable, IComparable<DateTime>, IConvertible, IEquatable<DateTime>, IFormattable,
System.Runtime.Serialization.ISerializable
从定义可以知道,DateTime实现了IComparable、IConvertible、IEquatable、IFormattable、ISerializable。因此,DateTime可以让我们
使用有关日期和时间的很多相关信息。
二、构造二、构造
初始化一个DateTime对象,C#提供了11种方式进行初始化,根据需要,可以使用年月日时分秒,以及Ticks。
Ticks是C#里一个独特的定义,它是以公历0001年1月1日00:00:00.000以来所经历的以100纳秒为间隔的间隔数。我们知道,纳
秒、微秒、毫秒和秒之间都是1000倍的关系,所以,1毫秒等于10000Ticks。这个数字很重要。在C#到Javascript时间转换
时,需要很清楚这个对应关系。
DateTime date1 = new DateTime(2020, 7, 14);
DateTime date2 = new DateTime(2020, 7, 14, 14, 23, 40);
DateTime date3 = new DateTime(637303334200000000);
三、静态字段三、静态字段
DateTime包括三个静态字段:
MinValue – DateTime的最小值,对应公历0001年1月1日00:00:00.000,Ticks为0;
MaxValue – DateTime的最大值,对应公历9999看12月31日23:59:59.999,Ticks为3155378975999999999;
UnixEpoch – Unix、Javascript下的时间起点,对应公历1970年1月1日00:00:00.000,Ticks为621355968000000000;
在Javascript中,时间保存的是从UnixEpoch开始,即从1970年1月1日00:00:00.000开始到现在的毫秒数。所以,C#时间到
Javascript时间的转换,可以用以下代码:
public static long ToUnixTicks(this DateTime time)
{
return (long)TimeSpan.FromTicks(time.Ticks - DateTime.UnixEpoch.Ticks).TotalMilliseconds - TimeZoneInfo.Local.GetUtcOffset(time).Hours * 60 * 60 *
1000;
}
在Javascript中引入时间:
var time = new Date().setTime(unix_ticks);
就完成了转换。
四、方法四、方法
DateTime提供了很多种方法来操作DateTime对象,用于处理诸如向日期添加天数、小时、分钟、秒、日期差异、从字符串解
析到datetime对象、获得通用时间等等。这儿就不详细说了,需要了可以查微软文档,很详细。
给几个例子:
TimeSpan duration = new System.TimeSpan(30, 0, 0, 0);
DateTime newDate1 = DateTime.Now.Add(duration);
DateTime today = DateTime.Now;
DateTime newDate2 = today.AddDays(30);
资源评论
weixin_38699302
- 粉丝: 2
- 资源: 923
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功