C#使用DateTime获取日期和时间
在C#中,DateTime类是用来处理日期和时间的类。它具有许多属性和方法,用于操作和获取日期和时间的不同部分。以下是DateTime类的一些常用属性和方法。
属性:
1、DateTime.Now:获取当前日期和时间。
DateTime currentDateTime = DateTime.Now;
Console.WriteLine(currentDateTime);//2023/11/21 21:26:04
假如我们想要获取当前日期的某些数据,我们还可以使用DateTime.Now相关的属性和方法。
具体常用的有一下这些:
属性:
(1)DateTime.Now.Ticks返回自公元1年1月1日午夜以来经过的以100纳秒为间隔的时间单位数。
long ticks = DateTime.Now.Ticks;
Console.WriteLine(ticks);//637799999912345678
(2)DateTime.Now.Year:获取当前日期的年份部分。
int currentYear = DateTime.Now.Year;
Console.WriteLine(currentYear);//2023
(3)DateTime.Now.Month:获取当前日期的月份部分。
int currentMonth = DateTime.Now.Month;
Console.WriteLine(currentMonth);//11
(4)DateTime.Now.Day:获取当前日期的天数部分。
int currentDay = DateTime.Now.Day;
Console.WriteLine(currentDay);//21
(5)DateTime.Now.DayOfWeek:获取当前日期是星期几。
DayOfWeek currentDayOfWeek = DateTime.Now.DayOfWeek;
Console.WriteLine(currentDayOfWeek);//Monday
(6)DateTime.Now.DayOfYear:获取当前日期是一年中的第几天。
int currentDayOfYear = DateTime.Now.DayOfYear;
Console.WriteLine(currentDayOfYear);//325
(7)DateTime.Now.TimeOfDay:获取当前时间部分。
TimeSpan currentTimeOfDay = DateTime.Now.TimeOfDay;
Console.WriteLine(currentTimeOfDay);//21:42:31.1234567
方法:
(1)DateTime.Now.ToString:将当前日期时间对象转换为字符串表示。
string currentDateTimeString = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
Console.WriteLine(currentDateTimeString);//2023-11-21 21:42:31
(2)DateTime.Now.ToShortDateString:获取当前日期的短日期字符串表示(只包含日期部分)。
string currentDateShortString = DateTime.Now.ToShortDateString();
Console.WriteLine(currentDateShortString);//2023/11/21
(3)DateTime.Now.ToShortTimeString:获取当前时间的短时间字符串表示(只包含时间部分)。
string currentTimeShortString = DateTime.Now.ToShortTimeString();
Console.WriteLine(currentTimeShortString);//21:42
(4)DateTime.Now.AddDays:将指定的天数添加到当前日期中。
DateTime tomorrow = DateTime.Now.AddDays(1);
Console.WriteLine(tomorrow);//2023/11/22 21:42:31
(5)DateTime.Now.AddMonths:将指定的月份数添加到当前日期中。
DateTime nextMonth = DateTime.Now.AddMonths(1);
Console.WriteLine(nextMonth);//2023/12/21 21:42:31
(6)DateTime.Now.AddYears:将指定的年份数添加到当前日期中。
DateTime nextYear = DateTime.Now.AddYears(1);
Console.WriteLine(nextYear);//2024/11/21 21:42:31
(7)DateTime.Now.AddHours:将指定的小时数添加到当前时间中。
DateTime newTime = DateTime.Now.AddHours(2);
Console.WriteLine(newTime);//2023/11/21 23:42:31
(8)DateTime.Now.AddMinutes:将指定的分钟数添加到当前时间中。
DateTime newTime = DateTime.Now.AddMinutes(15);
Console.WriteLine(newTime);//2023/11/21 21:57:31
2、DateTime.Today:获取当前日期,时间部分为午夜。
DateTime currentDate = DateTime.Today;
Console.WriteLine(currentDate); //2023/11/21 00:00:00
3、DateTime.Year:获取日期的年份部分。
DateTime date = new DateTime(2022, 11, 21);
int year = date.Year;
Console.WriteLine(year);//2022
4、DateTime.Month:获取日期的月份部分。
DateTime date = new DateTime(2023, 12, 21);
int month = date.Month;
Console.WriteLine(month);//12
5、DateTime.Day:获取日期的天数部分。
DateTime date = new DateTime(2023, 11, 21);
int day = date.Day;
Console.WriteLine(day);//21
6、DateTime.DayOfWeek:获取日期是星期几。
DateTime date = new DateTime(2023, 11, 21);
DayOfWeek dayOfWeek = date.DayOfWeek;
Console.WriteLine(dayOfWeek);//Monday
7、DateTime.DayOfYear:获取日期是一年中的第几天。
DateTime date = new DateTime(2023, 11, 21);
int dayOfYear = date.DayOfYear;
Console.WriteLine(dayOfYear);//325
8、DateTime.TimeOfDay:获取时间部分。
DateTime dateTime = new DateTime(2023, 11, 21, 9, 30, 0);
TimeSpan timeOfDay = dateTime.TimeOfDay;
Console.WriteLine(timeOfDay);//09:30:00
9、DateTime.Ticks:获取自公元1年1月1日午夜以来经过的时间刻度数。
DateTime dateTime = new DateTime(2023, 11, 21, 9, 30, 0);
long ticks = dateTime.Ticks;
Console.WriteLine(ticks);//637737774640000000
10、DateTime.Kind:获取日期时间对象的 DateTimeKind 值,指示其表示的时间是本地时间、协调世界时 (UTC) 还是未指定的类型。
DateTime dateTime = DateTime.Now;
DateTimeKind kind = dateTime.Kind;
Console.WriteLine(kind);//Local
方法:
1、DateTime.Compare:比较两个日期的大小。
DateTime date1 = new DateTime(2023, 11, 21);
DateTime date2 = new DateTime(2023, 11, 22);
int result = DateTime.Compare(date1, date2);
Console.WriteLine(result);//-1
2、DateTime.Equals:检查两个日期是否相等。
DateTime date1 = new DateTime(2023, 11, 21);
DateTime date2 = new DateTime(2023, 11, 21);
bool isEqual = DateTime.Equals(date1, date2);
Console.WriteLine(isEqual);//True
3、DateTime.IsLeapYear:检查指定的年份是否为闰年。
int year = 2024;
bool isLeapYear = DateTime.IsLeapYear(year);
Console.WriteLine(isLeapYear);//False
4、DateTime.ToString:将日期时间对象转换为字符串表示。
DateTime dateTime = new DateTime(2023, 11, 21, 9, 30, 0);
string dateString = dateTime.ToString("yyyy-MM-dd HH:mm:ss");
Console.WriteLine(dateString);//2023-11-21 09:30:00
5、DateTime.TryParse:尝试将字符串解析为 DateTime 对象,如果解析成功返回 true,否则返回 false。
string dateString = "2023-11-21";
DateTime date;
bool success = DateTime.TryParse(dateString, out date);
if (success)
{Console.WriteLine(date);
}
else
{Console.WriteLine("Invalid date format");
}//2023/11/21 00:00:00
6、DateTime.Now.AddDays:将指定的天数添加到当前日期中。
DateTime tomorrow = DateTime.Now.AddDays(1);
Console.WriteLine(tomorrow);//2023/11/22 21:26:04
7、DateTime.Now.AddMonths:将指定的月份数添加到当前日期中。
DateTime nextMonth = DateTime.Now.AddMonths(1);
Console.WriteLine(nextMonth);//2023/12/21 21:26:04
8、DateTime.Now.AddYears:将指定的年份数添加到当前日期中。
DateTime nextYear = DateTime.Now.AddYears(1);
Console.WriteLine(nextYear);//2024/11/21 21:26:04
9、DateTime.Now.AddHours:将指定的小时数添加到当前时间中。
DateTime newTime = DateTime.Now.AddHours(2);
Console.WriteLine(newTime);//2023/11/21 23:26:04
10、DateTime.Now.AddMinutes:将指定的分钟数添加到当前时间中。
DateTime newTime = DateTime.Now.AddMinutes(15);
Console.WriteLine(newTime);//2023/11/21 21:41:04
以上是一些常用的。
我们看到DateTime和DateTime.Now具有不少相同的属性和方法。但是它们并不是一样的,并且它们是代表不同的属性和方法。
DateTime结构中的属性,用于获取给定日期的年份部分。它接受一个DateTime对象,并返回该对象表示的日期的对应属性。
而DateTime.Now里面是属性是静态属性,相当于它已经定义好DateTime对象为当前日期的对象。
这点需要注意,得根据自己得需求进行相关调用。
相关文章:
C#使用DateTime获取日期和时间
在C#中,DateTime类是用来处理日期和时间的类。它具有许多属性和方法,用于操作和获取日期和时间的不同部分。以下是DateTime类的一些常用属性和方法。 属性: 1、DateTime.Now:获取当前日期和时间。 DateTime currentDateTime D…...
rook-ceph部署
rook是云原生存储编排器,本身不提供存储。 下载 git clone --single-branch --branch v1.11.4 https://github.com/rook/rook.git cd rook/deploy/examples 修改镜像地址images.txt operator方式部署rook kubectl apply -f crds.yaml -f common.yaml -f operator…...
JVM基础- 垃圾回收器
基本介绍 Java虚拟机(JVM)中的垃圾回收器是用来自动管理内存的关键组件。它负责识别并回收不再使用的内存,从而防止内存泄漏。不同的JVM实现提供了多种垃圾回收器,每种回收器都有其特定的使用场景和性能特点。以下是一些常见的JV…...
数理统计的基本概念(二)
文章目录 抽样分布几个重要分布 Γ \Gamma Γ 分布 β \beta β 分布 χ 2 \chi^2 χ2 分布 t t t 分布 F F F 分布 分位数 参考文献 抽样分布 所谓抽样分布是指统计量的概率分布。确定统计量的分布是数理统计学的基本问题之一。 几个重要分布 Γ \Gamma Γ 分布 若随机变量 …...
CountDownLatch和CyclicBarrier
JUC(Java.util.concurrent)是Java 5中引入的一个并发编程库,它包含了许多用于多线程处理的工具类和接口。JUC主要提供了以下特性: 线程池:线程池可以提高线程的使用效率,避免频繁地创建和销毁线程ÿ…...
云原生正在重塑软件的整个生命周期(内附资料)
随着企业数字化转型进程的发展,企业面临着新旧商业形态的剧变,颠覆和重构时刻都在发生。 企业需要更加快速地感知用户侧的需求变化并做出调整,才有可能在竞争中持续积累优势。业务的个性化、敏捷化、智能化需求日益突显,数字化应…...
Node.js环境配置级安装vue-cli脚手架
一、下载安装Node.js (略) 二、验证node.js并配置 1、下载安装后,cmd面板输入node -v查询版本、npm -v ,查看npm是否安装成功(有版本号就行了) 2、选择npm镜像(npm config set registry https://registry.npm.taobao.org&…...
十七、Rust集成MQTT Client
1、信息整理 目前了解到的Rust MQTT项目有: bytebeamio/rumqtt 1.3k star、717 commits、Contributors 78、tokio、futures、tls、rumqttc(client):cargo add rumqttc https://github.com/bytebeamio/rumqtt/tree/main/rumqttc ru…...
HarmonyOS ArkTS开发语言介绍(三)
1 引言 Mozilla创造了JS,Microsoft创建了TS,Huawei进一步推出了ArkTS。 从最初的基础的逻辑交互能力,到具备类型系统的高效工程开发能力,再到融合声明式UI、多维状态管理等丰富的应用开发能力,共同组成了相关的演进脉…...
[架构之路-247]:目标系统 - 设计方法 - 软件工程 - 结构化方法的基本思想、本质、特点以及在软件开发、在生活中的应用
目录 前言: 一、什么是非结构化方法 1.1 什么是非结构化方法 1.2 非结构化方法的适用场合 二、什么是结构化方法 1.1 结构化方法诞生的背景:软件规模发展:大规模、复杂系统的需要 1.2 概述 1.3 主要特点与核心思想 三、结构化方法在…...
大模型的交互能力
摘要: 基础大模型显示出明显的潜力,可以改变AI系统的开发人员和用户体验:基础模型降低了原型设计和构建AI应用程序的难度阈值,因为它们在适应方面的样本效率,并提高了新用户交互的上限,因为它们的多模式和生…...
80%测试员被骗,关于jmeter 的一个弥天大谎!
jmeter是目前大家都喜欢用的一款性能测试工具,因为它小巧、简单易上手,所以很多人都愿意用它来做接口测试或者性能测试,因此,在目前企业中,使用各个jmeter的版本都有,其中以jmeter3.x、4.x的应该居多。 但是…...
Git——感谢尚硅谷官方文档
Git——尚硅谷学习笔记 第1章 Git 概述1.1 何为版本控制1.2 为什么需要版本控制1.3 版本控制工具1.4 Git 简史1.5 Git 工作机制1.6 Git 和代码托管中心 第2章 Git 安装第 3 章 Git 常用命令3.1 设置用户签名3.2 初始化本地库3.3 查看本地库状态3.4 添加暂存区3.4.1 将工作区的文…...
Java WebSocket框架
引言 随着互联网和移动互联网的迅猛发展,实时通信成为了应用程序的一项重要能力。WebSocket作为一种在Web上实现双向通信的协议,极大地丰富了Web应用程序的交互方式。而在Java领域,也有许多优秀的WebSocket框架可供选择,本文将介…...
C#实现本地服务器客户端私聊通信
(一)需求 在游戏中我们经常能够看到玩家与玩家之间可以进行私聊,在QQ或微信中最基本的功能就是用户与用户之间的通信。抽象成计算机网络,就是两个客户端通过服务器进行私聊通信,两个客户端可以互相看到对方发送过来的信…...
PyTorch 之 Dataset 类入门学习
PyTorch 之 Dataset 类入门学习 Dataset 类简介 PyTorch 中的 Dataset 类是一个抽象类,用来表示数据集。通过继承 Dataset 类可以进行自定义数据集的格式、大小和其它属性,供后续使用; 可以看到官方封装好的数据集也是直接或间接的继承自 …...
Java update scheduler
引言 Java 更新调度器是 Java 中的一个特性,可以自动化 Java 应用程序的更新过程。它提供了一种方便的方式来安排 Java 应用程序的更新,确保其与最新的功能、错误修复和安全补丁保持同步。本文将深入介绍如何使用 Java 更新调度器,并解释它对…...
常见树种(贵州省):006栎类
摘要:本专栏树种介绍图片来源于PPBC中国植物图像库(下附网址),本文整理仅做交流学习使用,同时便于查找,如有侵权请联系删除。 图片网址:PPBC中国植物图像库——最大的植物分类图片库 一、麻栎 …...
拓扑排序-
有向无环图是拓扑排序 拓扑排序将图中所有的顶点排成一个线性序列,使得所有的有向边均从序列的前面指向后面。 拓扑排序使用深度优先搜索来实现,图中有环则无法进行拓扑排序 一个有向图,如果图中有入度为0的点,就把这个点删掉…...
Oracle数据库如何定位trace file位置
用一个示例来说明吧。 在导入master key时,出现错误: ADMINISTER KEY MANAGEMENTIMPORT KEYS WITH SECRET "my_secret"FROM /tmp/export.expIDENTIFIED BY keypwd5 WITH BACKUP; ADMINISTER KEY MANAGEMENT * ERROR at line 1: ORA-46655…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
Linux实现线程同步的方式有哪些?
什么是线程同步? 想象一下超市收银台:如果所有顾客(线程)同时挤向同一个收银台(共享资源),场面会一片混乱。线程同步就是给顾客们发"排队号码牌",确保: 有序访…...
Linux--vsFTP配置篇
一、vsFTP 简介 vsftpd(Very Secure FTP Daemon)是 Linux 下常用的 FTP 服务程序,具有安全性高、效率高和稳定性好等特点。支持匿名访问、本地用户登录、虚拟用户等多种认证方式,并可灵活控制权限。 二、安装与启动 1. 检查是否已…...
