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 类
目录 一、DateTime 类的常用方法和属性的汇总表格 二、常用方法程序示例 1. 获取当前本地时间 2. 获取当前 UTC 时间 3. 格式化日期和时间 4. 获取特定部分的时间 5. 获取时间戳 6. 获取时区信息 三、总结 一、DateTime 类的常用方法和属性的汇总表格 在 C# 中&#x…...
EasyRTC智能硬件:小体积,大能量,开启音视频互动新体验
在万物互联的时代,智能硬件正以前所未有的速度融入我们的生活。然而,受限于硬件性能和网络环境,许多智能硬件在音视频互动体验上仍存在延迟高、卡顿、回声等问题,严重影响了用户的使用体验。 EasyRTC智能硬件,凭借其强…...
【ESP32指向鼠标】——icm20948与esp32通信
【ESP32指向鼠标】——icm20948与esp32通信 ICM-20948介绍 ICM-20948 是一款由 InvenSense(现为 TDK 的一部分)生产的 9 轴传感器集成电路。它结合了 陀螺仪、加速度计和磁力计。 内置了 DMP(Digital Motion Processor)即负责执…...
算法——结合实例了解深度优先搜索(DFS)
一,深度优先搜索(DFS)详解 DFS是什么? 深度优先搜索(Depth-First Search,DFS)是一种用于遍历或搜索树、图的算法。其核心思想是尽可能深地探索分支,直到无法继续时回溯到上一个节点…...
每日温度问题:如何高效解决?
给定一个整数数组 temperatures,表示每天的温度,要求返回一个数组 answer,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 问题分析 我们需要计算…...
华为FreeBuds Pro4和FreeBuds Pro3区别,相比上一代升级了什么
华为FreeBuds Pro 4于2024年11月26日在华为Mate品牌盛典上正式发布,是华为音频产品线中的旗舰级产品,12月亮相华为海外旗舰产品发布会。华为FreeBuds Pro 4耳机采用入耳式设计,可选曜石黑、雪域白、云杉绿三款配色。 FreeBuds Pro 4 FreeBud…...
读取本地excel并生成map,key为第一列,value为第二列
添加依赖:在 pom.xml 文件中添加以下依赖: <dependencies><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.3</version></dependency><dependency&…...
SpringMVC学习使用
一、SpringMVC简单理解 1.1 Spring与Web环境集成 1.1.1 ApplicationContext应用上下文获取方式 应用上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,但是每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(sp…...
运维-自动访问系统并截图
需求背景 因项目甲方要求需要对系统进行巡检,由于系统服务器较多,并且已经采用PrometheusGrafana对系统服务器进行管理,如果要完成该任务,需要安排一个人力对各个系统和服务器进行一一截图等操作,费时费力,…...
UE_C++ —— Structs
目录 一,实现一个UStruct 二,Struct Specifiers 三,最佳做法与技巧 结构体(Struct)是一种帮助组织和操作相关属性的数据结构;在引擎中,结构体会被引擎反射系统识别为 UStruct,但不…...
Json-RPC项目框架(二)
目录 1. 项目实现; 1. 项目实现: 1.1 通信抽象实现: (1) BaseMessage: 主要实现对消息处理; 主要包含设置和获取ID, 设置类型和获取类型, 消息检查, 以及序列化和反序列化操作. class BaseMessage{public://大家需要的功能先实现;using ptr std::shared_ptr<BaseMessage…...
【C++八股】智能指针
智能指针⽤于管理动态内存的对象,其主要⽬的是在避免内存泄漏和多次释放资源。 1. std::unique_ptr 独占智能指针 std::unique_ptr 是一种独立智能指针,独占内存资源,不能被其他独立智能指针共享,拥有自动释放内存的功能。 std::u…...
Java中的synchronized关键字与锁升级机制
在多线程编程中,线程同步是确保程序正确执行的关键。当多个线程同时访问共享资源时,如果不进行同步管理,可能会导致数据不一致的问题。为了避免这些问题,Java 提供了多种同步机制,其中最常见的就是 synchronized 关键字…...
【科技革命】颠覆性力量与社会伦理的再平衡
目录 2025年科技革命:颠覆性力量与社会伦理的再平衡目录技术突破全景图认知智能的范式转移量子霸权实现路径生物编程技术革命能源结构重构工程 产业生态链重构医疗健康新范式教育系统智能进化金融基础设施变革制造范式革命 科技伦理与文明演进 2025年科技革命&#…...
NSLock 详解
NSLock 是 Objective-C 提供的一种 轻量级互斥锁,用于保证多线程访问共享资源的安全性。相比 synchronized,它的性能更好,并且提供了更灵活的锁管理方法。 1. NSLock 的基本使用 1)lock和unlock interface SafeCounter : NSObj…...
在CodeBlocks搭建SDL2工程虚拟TFT彩屏解码带压缩形式的Bitmap(BMP)图像显示
在CodeBlocks搭建SDL2工程虚拟TFT彩屏解码带压缩形式的Bitmap BMP图像显示 参考文章文章说明一、创建和退出SDL2二、 Bitmap(BMP)图片解码图三、Bitmap解码初始化四、测试代码五、主函数六、测试结果 参考文章 解码带压缩形式的Bitmap(BMP)图像并使用Python可视化解码后实际图…...
解决QPixmap报“QPixmap::grabWindow(): Unable to copy pixels from framebuffer“问题
今天在使用QPixmap::grabWindow()截图时,弹出“QPixmap::grabWindow(): Unable to copy pixels from framebuffer”错误。 问题原因:QPixmap::grabWindow()这个函数适用于Qt5版本截屏,但该函数在Qt4上表现不稳定,经常出现“Unable…...
mapbox进阶,添加绘图扩展插件,绘制任意方向矩形
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️MapboxDraw 绘图控件二、🍀添加绘图扩…...
初阶c语言(循环语句习题,完结)
前言: c语言为b站鹏哥,嗯对应视频37集 昨天做的c语言,今天在来做一遍,发现做错了 今天改了平均值的计算, 就是说最大值加上最小值,如果说这个数值非常大的话,两个值加上会超过int类型的最大…...
提升编程效率,体验智能编程助手—豆包MarsCode一键Apply功能测评
提升编程效率,体验智能编程助手—豆包MarsCode一键Apply功能测评 🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 目录 引言豆包…...
【deepseek-r1本地部署】
首先需要安装ollama,之前已经安装过了,这里不展示细节 在cmd中输入官网安装命令:ollama run deepseek-r1:32b,开始下载 出现success后,下载完成 接下来就可以使用了,不过是用cmd来运行使用 可以安装UI可视化界面&a…...
多用户商城系统的客服管理体系建设
多用户商城系统的运营,客服管理体系建设至关重要。优质的客服服务不仅能提升用户购物体验,还能增强用户对商城的信任与忠诚度,进而促进商城业务的持续增长。以下从四个关键方面探讨如何建设完善的客服管理体系,信息化客服系统在其…...
K8S容器启动提示:0/2 nodes are available: 2 Insufficient cpu.
问题:K8S的容器启动报错0/2 nodes are available: 2 Insufficient cpu. 原因:Pod的资源请求(requests)设置不当:在Kubernetes中,调度器根据Pod的requests字段来决定哪个节点可以运行该Pod。如果一个Pod声明…...
C++设计模式 - 模板模式
一:概述 模板方法(Template Method)是一种行为型设计模式。它定义了一个算法的基本框架,并且可能是《设计模式:可复用面向对象软件的基础》一书中最常用的设计模式之一。 模板方法的核心思想很容易理解。我们需要定义一…...
CZML 格式详解,javascript加载导出CZML文件示例
示例地址:https://dajianshi.blog.csdn.net/article/details/145573994 CZML 格式详解 1. 什么是 CZML? CZML(Cesium Zipped Markup Language)是一种基于 JSON 的文件格式,用于描述地理空间数据和时间动态场景。它专…...
安装并配置 MySQL
MySQL 是世界上最流行的开源关系型数据库管理系统之一,因其高性能、可靠性和易用性而被广泛应用于各种规模的企业级应用中。本文将详细介绍如何在不同的操作系统上安装和配置 MySQL,帮助你快速搭建起一个功能完善的数据库环境。 选择适合你的安装方式 …...
OpenAI推出全新AI助手“Operator”:让人工智能帮你做事的新时代!
引言 随着人工智能技术的不断发展,OpenAI 再次推出令人兴奋的功能——Operator,一个全新的 AI 助手平台。这不仅仅是一个普通的助手,它代表了人工智能技术的又一次飞跃,将改变我们工作和生活的方式。 什么是“Operator”ÿ…...
TensorBoard和Wandb的介绍
TensorBoard 介绍 TensorBoard 是 TensorFlow 提供的一个可视化工具,主要用于帮助开发者监控和分析机器学习模型的训练过程。它的主要功能包括: 模型结构可视化:直观展示神经网络的结构。 训练指标可视化:实时监控训练过程中的损…...
重看Spring聚焦BeanFactory分析
目录 一、理解BeanFactory (一)功能性理解 (二)BeanFactory和它的子接口 (三)BeanFactory的实现类 二、BeanFactory根接口 (一)源码展示和理解 (二)基…...
Python基础(上)
1. 基础语法 1.1 环境安装 Python版本: 推荐使用Python 3.6.6及以上开发工具: PyCharm 1.2 基本语法 输出: print("Hello World") 注释: 单行注释: # 注释内容(快捷键 Ctrl/) 多行注释: 使用三引号 注释内容 注意:不推…...
