DateTime时间类型的一些常用方法

一、DateTime 的构造函数(12个构造重载)

 DateTime time = new DateTime();

* 1.DateTime(Int64)
:将 DateTime 结构的新实例初始化为指定的刻度数。

* 2.DateTime(Int64, DateTimeKind)
:将 DateTime 结构的新实例初始化为指定的计时周期数以及协调世界时 (UTC) 或本地时间。

* 3.DateTime(Int32, Int32, Int32)
:将 DateTime 结构的新实例初始化为指定的年、月和日。

* 4.DateTime(Int32, Int32, Int32, Calendar)
:将 DateTime 结构的新实例初始化为指定日历的指定年、月和日。

* 5.DateTime(Int32, Int32, Int32, Int32, Int32, Int32)
:将 DateTime 结构的新实例初始化为指定的年、月、日、小时、分钟和秒。

* 6.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)
:将 DateTime 结构的新实例初始化为指定年、月、日、小时、分钟、秒和协调世界时 (UTC) 或本地时间。

* 7.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar)
:将 DateTime 结构的新实例初始化为指定日历的年、月、日、小时、分钟和秒。

* 8.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)
:将 DateTime 结构的新实例初始化为指定的年、月、日、小时、分钟、秒和毫秒。

* 9.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)
:将 DateTime 结构的新实例初始化为指定年、月、日、小时、分钟、秒、毫秒和协调世界时 (UTC) 或本地时间。

* 10.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)
:将 DateTime 结构的新实例初始化为指定日历的指定年、月、日、小时、分钟、秒和毫秒。

* 11.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)
:将 DateTime 结构的新实例初始化为指定日历的指定年、月、日、小时、分钟、秒、毫秒和协调世界时 (UTC) 或本地时间。

应用:

比如我要得到本月一号的时间可以这样写:

DateTime time = new DateTime(DateTime.Now.Year,DateTime.Now.Month,01);  //2020/11/1 0:00:00

上个月的一号:

DateTime time = new DateTime(DateTime.Now.Year,DateTime.Now.Month,01).AddMonths(-1); //2020/10/1 0:00:00

二、 YYYY-mm-dd HH:MM:SS解释

 输出:2020:11:06 11:20:51

 DateTime t = DateTime.Now;
 Console.WriteLine(t.ToString("yyyy:MM:dd HH:mm:ss"));

           不包含纪元的年份。不具有前导零。 
yy           不包含纪元的年份。具有前导零。 
yyyy        包括纪元的四位数的年份。 

           月份数字。一位数的月份没有前导零。 
MM          月份数字。一位数的月份有一个前导零。 
MMM       月份的缩写名称,在 AbbreviatedMonthNames 中定义。 
MMMM    月份的完整名称,在 MonthNames 中定义。 

d              月中的某一天。一位数的日期没有前导零。 
dd            月中的某一天。一位数的日期有一个前导零。 
ddd          周中某天的缩写名称,在 AbbreviatedDayNames 中定义。 
dddd        周中某天的完整名称,在 DayNames 中定义。 

         12 小时制的小时。一位数的小时数没有前导零。 
hh         12 小时制的小时。一位数的小时数有前导零。 
        24 小时制的小时。一位数的小时数没有前导零。 
HH        24 小时制的小时。一位数的小时数有前导零。 

        分钟。一位数的分钟数没有前导零。 
mm       分钟。一位数的分钟数有一个前导零。 

          秒。一位数的秒数没有前导零。 
ss          秒。一位数的秒数有一个前导零。 
          秒的小数精度为一位。其余数字被截断。 如果时间为2013-05-20 14:02:30 yyyy-MM-dd HH:mm:ss ;如果格式为yyyy-MM-dd hh:mm:ss 则显示为2013-05-20 02:02:30

gg 时期或纪元。 

三、 比较时间

1、例如有个需求是开始时间与结束时间不能超过1天,你会这么判断?

     解决方法:

     可以使用c#提供的方法TotalHours来解决

    

            DateTime time1 = DateTime.Now;
            DateTime time2 = DateTime.Now.AddDays(1);

            if ((time2 - time1).TotalHours<=24)
            {

            }

 两个时间的差值还有很多方法:可以根据需求具体使用

四、 时间转换成星期

1、给你一个时间,判断是星期几?

 可以使用 DateTime.Now.DayOfWeek ,DayOfWeek输出的是英文的星期几,如果要显示中文,我们可以写一个枚举

  public enum Week
        {
            星期天 = 0,
            星期一,
            星期二,
            星期三,
            星期四,
            星期五,
            星期六
        }

然后把DayOfWeek强转成Week枚举类型

            var t = DateTime.Now.DayOfWeek; 
            
            Console.WriteLine((Week)t);

结果输出具体的中文星期几

 

原文地址:https://www.cnblogs.com/qingheshiguang/p/13936077.html