C#学习之DateTime 类

目录

一、DateTime 类的常用方法和属性的汇总表格

二、常用方法程序示例

1. 获取当前本地时间

2. 获取当前 UTC 时间

3. 格式化日期和时间

4. 获取特定部分的时间

5. 获取时间戳

6. 获取时区信息

三、总结


一、DateTime 类的常用方法和属性的汇总表格

在 C# 中,获取本地系统时间非常简单。可以使用 DateTime 类来获取当前日期和时间。DateTime 类提供了丰富的属性和方法,用于处理日期和时间。常用的方法包括获取当前时间、格式化时间、计算时间差、添加时间等。

下表将DateTime 类的常用方法和属性汇总为表格,包括说明和示例。

方法/属性 说明 示例
DateTime.Now 获取当前的本地日期和时间。 DateTime now = DateTime.Now;
DateTime.UtcNow 获取当前的 UTC 日期和时间。 DateTime utcNow = DateTime.UtcNow;
DateTime.Today 获取当前日期,时间部分为 00:00:00。 DateTime today = DateTime.Today;
DateTime.Year 获取日期中的年份部分。 int year = DateTime.Now.Year;
DateTime.Month 获取日期中的月份部分(1 到 12)。 int month = DateTime.Now.Month;
DateTime.Day 获取日期中的天数部分(1 到 31)。 int day = DateTime.Now.Day;
DateTime.Hour 获取时间中的小时部分(0 到 23)。 int hour = DateTime.Now.Hour;
DateTime.Minute 获取时间中的分钟部分(0 到 59)。 int minute = DateTime.Now.Minute;
DateTime.Second 获取时间中的秒数部分(0 到 59)。 int second = DateTime.Now.Second;
DateTime.Millisecond 获取时间中的毫秒部分(0 到 999)。 int millisecond = DateTime.Now.Millisecond;
DateTime.DayOfWeek 获取日期是星期几(返回 DayOfWeek 枚举值)。 DayOfWeek dayOfWeek = DateTime.Now.DayOfWeek;
DateTime.DayOfYear 获取日期是一年中的第几天(1 到 366)。 int dayOfYear = DateTime.Now.DayOfYear;
DateTime.AddDays() 在当前日期上添加指定的天数。 DateTime newDate = DateTime.Now.AddDays(5);
DateTime.AddHours() 在当前时间上添加指定的小时数。 DateTime newTime = DateTime.Now.AddHours(3);
DateTime.AddMinutes() 在当前时间上添加指定的分钟数。 DateTime newTime = DateTime.Now.AddMinutes(30);
DateTime.AddSeconds() 在当前时间上添加指定的秒数。 DateTime newTime = DateTime.Now.AddSeconds(45);
DateTime.AddMonths() 在当前日期上添加指定的月数。 DateTime newDate = DateTime.Now.AddMonths(2);
DateTime.AddYears() 在当前日期上添加指定的年数。 DateTime newDate = DateTime.Now.AddYears(1);
DateTime.Subtract() 计算两个日期之间的时间差,返回 TimeSpan 对象。 TimeSpan diff = DateTime.Now.Subtract(previousDate);
DateTime.ToString() 将日期时间格式化为字符串。 string formatted = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
DateTime.Parse() 将字符串解析为 DateTime 对象。 DateTime date = DateTime.Parse("2023-10-05");
DateTime.TryParse() 尝试将字符串解析为 DateTime 对象,返回是否成功。 bool success = DateTime.TryParse("2023-10-05", out DateTime date);
DateTime.Compare() 比较两个日期时间,返回一个整数(小于 0:前者早于后者;等于 0:相等;大于 0:前者晚于后者)。 int result = DateTime.Compare(date1, date2);
DateTime.Equals() 判断两个日期时间是否相等。 bool isEqual = date1.Equals(date2);
DateTime.IsLeapYear() 判断指定年份是否为闰年。 bool isLeap = DateTime.IsLeapYear(2024);
DateTime.DaysInMonth() 返回指定年份和月份的天数。 int days = DateTime.DaysInMonth(2023, 2);
DateTime.ToShortDateString() 将日期格式化为短日期字符串(如 "2023/10/05")。 string shortDate = DateTime.Now.ToShortDateString();
DateTime.ToLongDateString() 将日期格式化为长日期字符串(如 "2023年10月5日")。 string longDate = DateTime.Now.ToLongDateString();
DateTime.ToShortTimeString() 将时间格式化为短时间字符串(如 "14:30")。 string shortTime = DateTime.Now.ToShortTimeString();
DateTime.ToLongTimeString() 将时间格式化为长时间字符串(如 "14:30:45")。 string longTime = DateTime.Now.ToLongTimeString();
DateTime.ToFileTime() 将日期时间转换为文件时间(64 位整数,表示从 1601-01-01 开始的 100 纳秒间隔)。 long fileTime = DateTime.Now.ToFileTime();
DateTime.ToUniversalTime() 将本地时间转换为 UTC 时间。 DateTime utcTime = DateTime.Now.ToUniversalTime();
DateTime.ToLocalTime() 将 UTC 时间转换为本地时间。 DateTime localTime = utcTime.ToLocalTime();

二、常用方法程序示例

1. 获取当前本地时间

使用 DateTime.Now 属性可以获取当前的本地日期和时间。

using System;

class Program
{
    static void Main()
    {
        // 获取当前本地时间
        DateTime localTime = DateTime.Now;

        // 输出本地时间
        Console.WriteLine("当前本地时间: " + localTime);
    }
}

2. 获取当前 UTC 时间

如果需要获取协调世界时(UTC),可以使用 DateTime.UtcNow 属性。

using System;

class Program
{
    static void Main()
    {
        // 获取当前 UTC 时间
        DateTime utcTime = DateTime.UtcNow;

        // 输出 UTC 时间
        Console.WriteLine("当前 UTC 时间: " + utcTime);
    }
}

3. 格式化日期和时间

可以使用 ToString() 方法将日期和时间格式化为特定的字符串格式。

using System;

class Program
{
    static void Main()
    {
        // 获取当前本地时间
        DateTime localTime = DateTime.Now;

        // 格式化输出
        Console.WriteLine("短日期格式: " + localTime.ToShortDateString());
        Console.WriteLine("长日期格式: " + localTime.ToLongDateString());
        Console.WriteLine("短时间格式: " + localTime.ToShortTimeString());
        Console.WriteLine("长时间格式: " + localTime.ToLongTimeString());
        Console.WriteLine("自定义格式: " + localTime.ToString("yyyy-MM-dd HH:mm:ss"));
    }
}

4. 获取特定部分的时间

可以通过 DateTime 的属性获取年、月、日、时、分、秒等部分。

using System;

class Program
{
    static void Main()
    {
        // 获取当前本地时间
        DateTime localTime = DateTime.Now;

        // 获取时间部分
        int year = localTime.Year;
        int month = localTime.Month;
        int day = localTime.Day;
        int hour = localTime.Hour;
        int minute = localTime.Minute;
        int second = localTime.Second;

        // 输出时间部分
        Console.WriteLine($"年: {year}, 月: {month}, 日: {day}");
        Console.WriteLine($"时: {hour}, 分: {minute}, 秒: {second}");
    }
}

5. 获取时间戳

如果需要获取当前时间的时间戳(从 1970-01-01 到现在的秒数或毫秒数),可以使用以下方法:

using System;

class Program
{
    static void Main()
    {
        // 获取当前时间的时间戳(秒)
        long timestampSeconds = DateTimeOffset.UtcNow.ToUnixTimeSeconds();

        // 获取当前时间的时间戳(毫秒)
        long timestampMilliseconds = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

        // 输出时间戳
        Console.WriteLine("时间戳(秒): " + timestampSeconds);
        Console.WriteLine("时间戳(毫秒): " + timestampMilliseconds);
    }
}

6. 获取时区信息

如果需要获取本地时间的时区信息,可以使用 TimeZoneInfo 类。

using System;

class Program
{
    static void Main()
    {
        // 获取本地时区
        TimeZoneInfo localTimeZone = TimeZoneInfo.Local;

        // 输出时区信息
        Console.WriteLine("本地时区: " + localTimeZone.DisplayName);
        Console.WriteLine("时区 ID: " + localTimeZone.Id);
        Console.WriteLine("当前 UTC 偏移量: " + localTimeZone.BaseUtcOffset);
    }
}

三、总结

  • 使用 DateTime.Now 获取本地系统时间。

  • 使用 DateTime.UtcNow 获取 UTC 时间。

  • 使用 ToString() 方法格式化日期和时间。

  • 使用 DateTime 的属性获取年、月、日、时、分、秒等部分。

  • 使用 DateTimeOffset 获取时间戳。

  • 使用 TimeZoneInfo 获取时区信息。

你可能感兴趣的:(C#,DateTime,c#,学习,开发语言,DateTime)