C#学习之DateTime 类

embedded/2025/2/19 13:22:01/

目录

DateTime%C2%A0%E7%B1%BB%E7%9A%84%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95%E5%92%8C%E5%B1%9E%E6%80%A7%E7%9A%84%E6%B1%87%E6%80%BB%E8%A1%A8%E6%A0%BC-toc" name="tableOfContents" style="margin-left:40px">一、DateTime 类的常用方法和属性的汇总表格

二、常用方法程序示例

1. 获取当前本地时间

2. 获取当前 UTC 时间

3. 格式化日期和时间

4. 获取特定部分的时间

5. 获取时间戳

6. 获取时区信息

三、总结


DateTime%C2%A0%E7%B1%BB%E7%9A%84%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95%E5%92%8C%E5%B1%9E%E6%80%A7%E7%9A%84%E6%B1%87%E6%80%BB%E8%A1%A8%E6%A0%BC" name="%E4%B8%80%E3%80%81DateTime%C2%A0%E7%B1%BB%E7%9A%84%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95%E5%92%8C%E5%B1%9E%E6%80%A7%E7%9A%84%E6%B1%87%E6%80%BB%E8%A1%A8%E6%A0%BC">一、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 获取时区信息。


http://www.ppmy.cn/embedded/162313.html

相关文章

算法与数据结构:从基础到深入

1. 数组 (Array) 定义 一组连续内存空间存储的相同类型元素的集合。特点:通过下标(索引)快速访问元素,但大小固定(静态数组)或可扩展(动态数组)。 核心操作 操作时间复杂度说明访…

全网最全Win10/11系统下WSL2+Ubuntu20.04的全流程安装指南(两种支持安装至 D 盘方式)

前言 WSL2(Windows Subsystem for Linux 2)是 Windows 提供的一种轻量级 Linux 运行环境,具备完整的 Linux 内核,并支持更好的文件系统性能和兼容性。它允许用户在 Windows 系统中运行 Linux 命令行工具和应用程序,而…

Golang GORM系列:GORM数据库迁移

在 Go 应用程序开发的动态领域中,GORM 成为数据库管理效率和创新的灯塔。作为一款强大的 ORM(对象关系映射)库,GORM 彻底改变了开发人员与数据库交互的方式。除了简化数据库交互这一基础作用外,GORM 还提供了众多功能&…

深入解析 STM32 GPIO:结构、配置与应用实践

理解 GPIO 的工作原理和配置方法是掌握 STM32 开发的基础,后续的外设(如定时器、ADC、通信接口)都依赖于 GPIO 的正确配置。 目录 一、GPIO 的基本概念 二、GPIO 的主要功能 三、GPIO 的内部结构 四、GPIO 的工作模式 1. 输入模式 2. 输…

深入理解 CSS 层叠上下文

在现代网页设计中,CSS 层叠上下文是一个关键概念,尤其当我们涉及到复杂布局、弹出层、模态框、动画等场景时。通过层叠上下文,我们能够控制元素的层级关系,从而确保页面的渲染顺序符合预期。在这篇博客中,我们将深入探…

【力扣】148.排序链表

AC截图 题目 思路 基本情况处理: 如果链表为空 (head NULL) 或者链表仅有一个节点 (head->next NULL),则链表已经是有序的,直接返回头节点 head。 分割链表: 使用快慢指针法找到链表的中间节点。slow 指针每次前进一格&…

2. grafana插件安装并接入zabbix

一、在线安装 如果不指定安装位置,则默认安装位置为/var/lib/grafana/plugins 插件安装完成之后需要重启grafana 命令在上一篇讲到过 //查看相关帮助 [rootlocalhost ~]# grafana-cli plugins --help //从列举中的插件过滤zabbix插件 [rootlocalhost ~]# grafana…

yum报错 Could not resolve host: mirrorlist.centos.org

检查dns 使用ping www.baidu.com ,如果ping不通,检查/etc/resolv.conf文件中是否有: nameserver 8.8.8.8 nameserver 8.8.4.4 替换yum源 1.备份原始的 YUM 源配置文件: sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.r…