当前位置: 首页 > article >正文

C#学习第27天:时间和日期的处理

时间和日期的核心概念


1. UTC 和 本地时间

  • UTC(Coordinated Universal Time):

    • 是一种不受时区影响的世界标准时间。
    • 在网络通信和全球协作中,用于统一时间度量
  • 本地时间(Local Time): 

    • 是根据所在时区调节后的时间。
    • 反映本地的时间差异,比如夏令时、时区偏移等。

2. UTC 和本地时间的区别

  • UTC是统一的,不随地理位置变化。
  • 本地时间因时区不同而改变,需要考虑时区偏移。
  • 在编程中,通常存储和处理数据时使用UTC,而在用户交互时转换为本地时间。

 常用日期和时间类


1. DateTime

  • 定义:DateTime是用于表示时间点的结构,包含日期和时间信息。
  • 属性:
    • DateTime.Now:获取当前本地时间。
    • DateTime.UtcNow:获取当前UTC时间。
    • DateTime.Today:获取当前日期,时间部分为午夜。
using System;class Program
{static void Main(){DateTime now = DateTime.Now;DateTime utcNow = DateTime.UtcNow;DateTime today = DateTime.Today;Console.WriteLine($"Local Now: {now}");    //Local Now: 2025/6/4 14:05:43Console.WriteLine($"UTC Now: {utcNow}");   //UTC Now: 2025/6/4 6:05:43Console.WriteLine($"Today: {today}");      //Today: 2025/6/4 0:00:00}
}

2. TimeSpan

  • 定义:TimeSpan表示一个时间间隔或持续时间。
  • 属性和方法:
    • TimeSpan.FromDays(double days):创建代表指定天数的TimeSpan。
    • TimeSpan.FromHours(double hours):创建代表指定小时的TimeSpan。
    • TimeSpan.TotalSeconds:获取时间间隔的总秒数。
  • using System;class Program
    {static void Main(){TimeSpan duration = new TimeSpan(1, 2, 30); // 1 hour, 2 minutes, 30 secondsConsole.WriteLine($"Duration: {duration}");  //Duration: 01:02:30TimeSpan fromHours = TimeSpan.FromHours(5.5);Console.WriteLine($"5.5 Hours in Total Minutes: {fromHours.TotalMinutes}");//5.5 Hours in Total Minutes: 330}
    }
    

3.DateTimeOffset 

  • 定义:DateTimeOffset 用于表示日期和时间,同时包含与 UTC(协调世界时)的偏移量.
  • 属性:
    • DateTimeOffset.Now:获取当前本地时间和偏移。
    • DateTimeOffset.UtcNow:获取当前 UTC 时间。
using System;class Program
{static void Main(){// 获取当前时间的 Unix 时间戳(秒)long unixTimestampInSeconds = DateTimeOffset.UtcNow.ToUnixTimeSeconds();Console.WriteLine($"Unix 时间戳(秒):{unixTimestampInSeconds}");// 获取当前时间的 Unix 时间戳(毫秒)long unixTimestampInMilliseconds = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();Console.WriteLine($"Unix 时间戳(毫秒):{unixTimestampInMilliseconds}");}
}

日期和时间的格式化


使用DateTime.ToString方法和格式字符串自定义日期和时间的输出。

常见格式字符串:

  • "yyyy-MM-dd":四位年份-两位月份-两位日期。
  • "HH:mm:ss":24小时制的时间。
  • "dddd, dd MMMM yyyy":星期几, 天 月份 年份。
using System;class Program
{static void Main(){DateTime now = DateTime.Now;string formattedDate = now.ToString("yyyy-MM-dd");string formattedTime = now.ToString("HH:mm:ss");string fullDate = now.ToString("dddd, dd MMMM yyyy");Console.WriteLine($"Formatted Date: {formattedDate}"); //Formatted Date: 2025-06-04Console.WriteLine($"Formatted Time: {formattedTime}"); //Formatted Time: 14:12:14Console.WriteLine($"Full Date: {fullDate}"); //Full Date: 星期三, 04 六月 2025}
}

使用场景


  • 1.跨时区应用:
    • 使用UTC存储时间,确保一致性,然后在用户界面显示时转换为本地时间。
  • 2.定时任务和调度:
    • 使用TimeSpan计算时间间隔,安排任务执行。
  • 3.日志记录:
    • 使用UTC时间记录日志,确保在各种时区下时间记录的准确性。

通过理解这些日期和时间处理的概念和类,您可以有效地管理时间相关的数据和逻辑。如果有任何问题或者需要进一步指导,请随时告诉我! 

相关文章:

C#学习第27天:时间和日期的处理

时间和日期的核心概念 1. UTC 和 本地时间 UTC(Coordinated Universal Time): 是一种不受时区影响的世界标准时间。在网络通信和全球协作中,用于统一时间度量 本地时间(Local Time): 是根据所…...

编程技能:格式化打印05,格式控制符

专栏导航 本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。 (一)WIn32 专栏导航 上一篇:编程技能:格式化打印04,sprintf 回到目录…...

MPLAB X IDE ​软件安装与卸载

1、下载MPLAB X IDE V6.25 MPLAB X IDE | Microchip Technology 正常选Windows,点击Download,等待自动下载完成; MPLAB X IDE 一台电脑上可以安装多个版本; 2、安装MPLAB X IDE V6.25 右键以管理员运行;next; 勾选 I a…...

windows编程实现文件拷贝

项目源码链接: 实现文件拷贝功能(限制5GB大小) 81c57de 周不才/cpp_linux study - Gitee.com 知识准备: 1.句柄 句柄是一个用于标识和引用系统资源(如文件、窗口、进程、线程、位图等)的值。它不是资…...

[6-01-01].第12节:字节码文件内容 - 属性表集合

JVM学习大纲 二、属性表集合: 2.1.属性计数器: 2.2.属性表: 2.3.字节码文件组成5 -> 属性: 1.属性主要指的是类的属性,比如源码的文件名、内部类的列表等 2.4.字节码文件组成3 -> 字段: 1.字段中…...

基于机器学习的水量智能调度研究

摘要:随着城市化进程的加速和水资源供需矛盾的日益突出,传统的水量调度模式因缺乏精准预测和动态调控能力,难以满足现代供水系统对高效性、稳定性和节能性的要求。本文针对供水系统中用水峰谷预测不准确、能耗高、供需失衡等核心问题&#xf…...

深度解码:我如何用“结构进化型交互学习方法”与AI共舞,从学习小白到构建复杂认知体系

嗨,亲爱的学习者们,思考者们,以及所有渴望在知识海洋中自由翱行却时常感到迷茫的朋友们: 你是否也曾有过这样的深夜,面对堆积如山的学习资料,眼神迷离,内心却一片荒芜?明明每个字都…...

深入浅出 Scrapy:打造高效、强大的 Python 网络爬虫

在数据为王的时代,高效获取网络信息是开发者必备的技能。今天我将为大家介绍 Python 爬虫领域的王者框架——Scrapy。无论你是数据工程师、分析师还是开发者,掌握 Scrapy 都能让你的数据采集效率提升数倍! 项目地址:https://github.com/scrapy/scrapy 官方文档:https://do…...

ES6 Promise 状态机

状态机:抽象的计算模型,根据特定的条件或者信号切换不同的状态 一、Promise 是什么? 简单来说,Promise 就是一个“承诺对象”。在ES6 里,有些代码执行起来需要点时间,比如加载文件、等待网络请求或者设置…...

Axure 与 Cursor 集成实现方案

Axure 与 Cursor 集成实现方案 以下是一个完整的 Axure 与 Cursor AI 集成的原型实现方案,通过自定义 JavaScript 代码实现无缝对接: 一、整体架构设计 #mermaid-svg-f9hQDSN4hijU3mJY {font-family:"trebuchet ms",verdana,arial,sans-seri…...

汽车加气站操作工证考试重点

汽车加气站操作工证考试重点 一、汽车加气站操作工证考试主要内容 汽车加气站操作工证是从事CNG(压缩天然气)和LNG(液化天然气)加气站作业人员的必备资格证书。随着新能源汽车的快速发展,该证书的市场需求持续增长&a…...

贪心算法应用:带权任务间隔调度问题详解

贪心算法应用:带权任务间隔调度问题详解 贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。带权任务间隔调度问题是贪心算法的一个经典应用场景。 问题定义…...

用电脑控制keysight示波器

KEYSIGHT示波器HD304MSO性能 亮点: 体验 200 MHz 至 1 GHz 的带宽和 4 个模拟通道。与 12 位 ADC 相比,使用 14 位模数转换器 (ADC) 将垂直分辨率提高四倍。使用 10.1 英寸电容式触摸屏轻松查看和分析您的信号。捕获 50 μVRMS …...

LLaMA-Factory - 批量推理(inference)的脚本

scripts/vllm_infer.py 是 LLaMA-Factory 团队用于批量推理(inference)的脚本,基于 vLLM 引擎,支持高效的并行推理。它可以对一个数据集批量生成模型输出,并保存为 JSONL 文件,适合大规模评测和自动化测试。…...

React从基础入门到高级实战:React 高级主题 - 测试进阶:从单元测试到端到端测试的全面指南

React 测试进阶:从单元测试到端到端测试的全面指南 引言 在2025年的React开发环境中,测试不仅是代码质量的保障,更是提升开发效率和用户体验的关键支柱。随着React应用的复杂性不断增加,高级测试技术——如端到端(E2…...

Ansible 剧本精粹 - 编写你的第一个 Playbook

Ansible 剧本精粹 - 编写你的第一个 Playbook 如果说 Ansible Ad-Hoc 命令像是你对厨房里的助手发出的零散口头指令(“切个洋葱”、“烧开水”),那么 Playbook 就是一份完整、详细、写在纸上的菜谱。它列明了所有需要的“食材”(变量),详细的“烹饪步骤”(任务),甚至还…...

【Elasticsearch】Elasticsearch 核心技术(二):映射

Elasticsearch 核心技术(二):映射 1.什么是映射(Mapping)1.1 元字段(Meta-Fields)1.2 数据类型 vs 映射类型1.2.1 数据类型1.2.2 映射类型 2.实际运用案例案例 1:电商产品索引映射案…...

【计算机网络】网络层协议

1. ICMP协议的介绍及应用 IP协议的助手 —— ICMP 协议 ping 是基于 ICMP 协议工作的,所以要明白 ping 的工作,首先我们先来熟悉 ICMP 协议。 ICMP 全称是 Internet Control Message Protocol,也就是互联网控制报文协议。 里面有个关键词 …...

.NET Core接口IServiceProvider

.NET Core 接口 IServiceProvider 深度剖析 在 .NET Core 和 .NET 5 的世界里,依赖注入(Dependency Injection,简称 DI)是构建可维护、可测试应用程序的关键技术。而 IServiceProvider 接口,正是依赖注入机制中的核心…...

结构型设计模式之Proxy(代理)

结构型设计模式之Proxy(代理) 前言: 代理模式,aop环绕通知,动态代理,静态代理 都是代理的一种,这次主要是记录设计模式的代理demo案例,详情请看其他笔记。 1)意图 为其…...

案例分享--汽车制动卡钳DIC测量

制动系统是汽车的主要组成部分,是汽车的主要安全部件之一。随着车辆性能的不断提高,车速不断提升,对车辆的制动系统也随之提出了更高要求,因此了解车辆制动系统中每个部件的动态行为成为了制动系统优化的主要途径,同时…...

Redis Set集合命令、内部编码及应用场景(详细)

文章目录 前言普通命令SADDSMEMBERSSISMEMBERSCARDSPOPSMOVESREM 集合间操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 命令小结内部编码使用场景 前言 集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,集合中 1)元…...

C++算法动态规划1

DP定义: 动态规划是分治思想的延申,通俗一点来说就是大事化小,小事化无的艺术。 在将大问题化解为小问题的分治过程中,保存对这些小问题已经处理好的结果,并供后面处理更大规模的问题时直接使用这些结果。 动态规划具…...

【快速预览经典深度学习模型:CNN、RNN、LSTM、Transformer、ViT全解析!】

🚀快速预览经典深度学习模型:CNN、RNN、LSTM、Transformer、ViT全解析! 📌你是否还在被深度学习模型名词搞混?本文带你用最短时间掌握五大经典模型的核心概念和应用场景,助你打通NLP与CV的任督二脉&#xf…...

KaiwuDB在边缘计算领域的应用与优势

KaiwuDB 在边缘计算场景中主要应用于 工业物联网(IIoT)、智能电网、车联网 等领域,通过其分布式多模架构和轻量化设计,在边缘侧承担 数据实时处理、本地存储与协同分析 的核心作用。以下是具体案例和功能解析: 1. 典型…...

如何避免二极管过载?

如何避免二极管过载? 二极管作为电路中的基础元件,其过载可能导致性能下降甚至烧毁。以下从选型、安装、保护设计及散热四方面提供实用解决二极管过载方案: 精准选型匹配需求 根据电路特性选择二极管类型:高频电路优先选用肖特基…...

Vue.js组件开发系统性指南

结合核心概念、最佳实践及性能优化策略,帮助您构建高效可维护的组件体系: 一、组件基础与核心结构 1.单文件组件(SFC)组织 模板:使用<template>定义HTML结构,遵循单根元素原则。 逻辑:在<script>中通过export default导出组件选项(数据、方法、生命周期钩…...

React---day9

11、css 11.1 styled的基本使用 CSS-in-JS的模式就是一种将样式&#xff08;CSS&#xff09;也写入到JavaScript中的方式&#xff0c;并且可以方便的使用JavaScript的状态&#xff1b; npm add styled-componentsconst Title styled.h1font-size: 1.5em;text-align: center…...

设计模式 - 模板方法模式

该模式将定义一个操作中的算法骨架&#xff0c;并将算法的一些步骤延迟到子类中实现&#xff0c;使得子类可以在不改变算法结构的情况下重定义算法的某些特定步骤。 例如&#xff0c;炒菜的步骤是固定的&#xff0c;具体可分为倒油、热油、倒蔬菜、倒调料品、翻炒等。通过模板…...

鸿蒙开发List滑动每项标题切换悬停

鸿蒙开发List滑动每项标题切换悬停 鸿蒙List滑动每项标题切换悬停&#xff0c;功能也很常见 一、效果图&#xff1a; 二、思路&#xff1a; ListItemGroup({ header: this.itemHead(secondClassify, index) }) 三、关键代码&#xff1a; build() {Column() {List() {ListIt…...