当前位置 : 主页 > 网络编程 > c#编程 >

C#中DateTime函数的详细用法

来源:互联网 收集:自由互联 发布时间:2023-01-31
目录 一、初始化: 带农历日期 二、格式化函数。 1、常用 2、长短日期和时间 三、属性 1、日期部分 2、时间部分 3、计时周期 四、日期操作 1、加减几X: 2、两日期差异的TimeSpan 3、比
目录
  • 一、初始化:
    • 带农历日期
  • 二、格式化函数。
    • 1、常用
    • 2、长短日期和时间
  • 三、属性
    • 1、日期部分
    • 2、时间部分
    • 3、计时周期
  • 四、日期操作
    • 1、加减几X:
    • 2、两日期差异的TimeSpan
    • 3、比较时间
  • 五、静态方法:
    • 六、计算一年中的第几周
      • 七、获取JS相关的日期数字格式(Unix时间戳)

        一、初始化:

        DateTime dt = new DateTime(2011, 3, 4);
        DateTime dt3 = new DateTime(2011, 3, 4, 17, 08, 09);
        DateTime dt1 = DateTime.Now;
        DateTime dt2 = DateTime.Today;
        DateTime dt5 = new DateTime(20000, DateTimeKind.Local);

        带农历日期

        DateTime dt4 = new DateTime(1983, 5, 17, new System.Globalization.ChineseLunisolarCalendar()); //农历日期
        Console.WriteLine(dt4); //1983/6/27 0:00:00

        二、格式化函数。

        1、常用

        DateTime dt = DateTime.Now;
        s1=dt.ToString();//2019-06-25 10:38:31
        s2=dt.ToString("d");//2019-06-25
        
        s3=dt.toToLocalTime().ToString();//2019-06-25 10:38:31
        s4=dt.ToUniversalTime().ToString();//2019-06-25 2:38:31

        2、长短日期和时间

        s1 = dt.ToLongDateString(); // 2019年6月25日
        s2 = dt.ToShortDateString();// 2019-06-25
        s3 = dt.ToLongTimeString(); // 10:41:14
        s4 = dt.ToShortTimeString();// 10:41

        三、属性

        1、日期部分

        s1 = dt.Date.ToString();//日期。2019-06-25 0:00:00
        s2 = dt.Year.ToString();//年。2019
        s3 = dt.Month.ToString();//月。6
        s4 = dt.Day.ToString();//日。 25
        s5 = dt.DayOfWeek.ToString();//星期。Tuesday
        s6 = Convert.ToInt32(dt.DayOfWeek).ToString(); //2
        s7 = dt.DayOfYear.ToString();// 该年中的第几天。176
        s8 = (dt.DayOfYear / 7 + 1).ToString();//该年中的第几周。26

        2、时间部分

        s1 = dt.TimeOfDay.ToString();//时间。10:50:23.4881958
        s2 = dt.Hour.ToString();//时,10
        s3 = dt.Minute.ToString();//分、50
        s4 = dt.Second.ToString();//秒 23
        s5 = dt.Millisecond.ToString();//毫秒。 488

        3、计时周期

        Ticks:自0001年1月1日午夜0:0:0(即DateTime.MinValue)以来经过的以100毫微秒(即纳秒)为间隔的间隔数。

        s1 = dt.Ticks.ToString();//一个tick代表100ns,一毫秒=10000tick,一秒等于107个ticks.636970570197681958

        四、日期操作

        TimeSpan它含有以下四个构造函数:

        • TimeSpan(Int64):初始化为指定的刻度数。
        • TimeSpan(Int32, Int32, Int32):初始化为指定的小时数、分钟数和秒数
        • TimeSpan(Int32, Int32, Int32, Int32): 初始化为指定的天数、小时数、分钟数和秒数
        • TimeSpan(Int32,Int32, Int32, Int32, Int32):初始化为指定的天数、小时数、分钟数、秒数和毫秒数。

        1、加减几X:

        s1 = dt.AddYears(1).ToString();// 2020-06-25 11:01:09
        s2 = dt.AddMonths(-1).ToString();// 2019-05-25 11:01:24
        s3 = dt.AddDays(1).ToString();// 2019-06-26 11:01:24
        s4 = dt.AddHours(-1).ToString();// 2019-06-25 10:01:24
        s5 = dt.AddMinutes(1).ToString();//2019-06-25 11:02:24
        s6 = dt.AddTicks(1000).ToString();//2019-06-25 11:01:24

        日期加减TimeSpan:

        DateTime dt = DateTime.Now;
        
        s1 = dt + TimeSpan.FromDays(2.1).ToString();//2019-06-25 11:05:392.02:24:00
        s2 = dt.Add(TimeSpan.FromDays(2.1)).ToString();//2019-06-27 13:29:39
        s3 = (dt - new TimeSpan(1, 2, 0, 0, 0)).ToString();// 2019-06-24 9:05:39
        s4 = dt.Subtract(TimeSpan.FromDays(2)).ToString();//2019-06-23 11:05:39

        2、两日期差异的TimeSpan

        s1 = (dt - dt.AddDays(-3)).Days.ToString();//3
        s2 = (dt.Subtract(dt.AddDays(-3))).Days.ToString();//3

        3、比较时间

        s1 = dt.CompareTo(dt.AddYears(1)).ToString();//-1
        s2 = (dt == dt.AddYears(1)).ToString();//False
        s3 = (dt < dt.AddYears(1)).ToString();// True

        五、静态方法:

        s1 = DateTime.DaysInMonth(2019, 6).ToString();//某月共有几天,30
        s2 = DateTime.IsLeapYear(2019).ToString();    //是否为闰年,False
        s3 = DateTime.Compare(dt, new DateTime(2019, 6, 25))) //比较. 1
        
        s4 = DateTime.Parse("2019,5,16").ToString();//2019-05-16 0:00:00
        s5 = DateTime.ParseExact("1899-12-30", "yyyy-MM-dd", CultureInfo.CurrentCulture.DateTimeFormat).ToString();//1899-12-30 0:00:00
        s6 = Convert.ToDateTime("2019,5,16").ToString();//2019-05-16 0:00:00

        六、计算一年中的第几周

        1、见上面的dt.DayOfYear。

        2、利用GregorianCalendar

        GregorianCalendar gc = new GregorianCalendar();
        int weekOfYear = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
        s1 = weekOfYear.ToString();// 26

        七、获取JS相关的日期数字格式(Unix时间戳)

        JavaScript 将零时间存储为自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来的毫秒数。

        // 将时间变成数字,同JS的d.GetTime()相同的值,到毫秒三种方式
        var a = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000;
        var b = (DateTime.Now.ToUniversalTime().Ticks - new DateTime(1970, 1, 1).Ticks) / 10000;
        var c = (Int64)(DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1)).TotalMilliseconds;
        //将数字变成时间(本地时间),同JS中的 var d= new Date(100000000000)。
        var d = DateTime.Parse("1970-01-01 00:00:00").AddMilliseconds(c);
        Console.WriteLine(a);
        Console.WriteLine(b);
        Console.WriteLine(c);
        Console.WriteLine(d.ToLocalTime());
        
        //输出:
        //1620634282422
        //1620634282422
        //1620634282422
        //2021/5/10 星期一 16:11:22

        到此这篇关于C#中DateTime函数用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。

        上一篇:WPF实现Interaction框架的Behavior扩展
        下一篇:没有了
        网友评论