C# 时间和日期的处理方法

 更新时间:2025年06月06日 09:37:54   作者:ghost143  
这篇文章主要介绍了C#时间和日期的处理,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

时间和日期的核心概念

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:43
        Console.WriteLine($"UTC Now: {utcNow}");   //UTC Now: 2025/6/4 6:05:43
        Console.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 seconds
        Console.WriteLine($"Duration: {duration}");  //Duration: 01:02:30
        TimeSpan 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-04
        Console.WriteLine($"Formatted Time: {formattedTime}"); //Formatted Time: 14:12:14
        Console.WriteLine($"Full Date: {fullDate}"); //Full Date: 星期三, 04 六月 2025
    }
}

使用场景

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

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

到此这篇关于C# 时间和日期的处理的文章就介绍到这了,更多相关C# 时间和日期内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#命令模式用法实例

    C#命令模式用法实例

    这篇文章主要介绍了C#命令模式用法,以实例形式较为详细的分析了C#命令模式的功能、定义及使用技巧,需要的朋友可以参考下
    2015-07-07
  • C# LiteDB处理时间序列数据的高性能解决方案

    C# LiteDB处理时间序列数据的高性能解决方案

    LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数据的高性能解决方案,希望对大家有所帮助
    2025-08-08
  • C# 多网卡 Server Listen

    C# 多网卡 Server Listen

    C# 多网卡 Server Listen...
    2007-04-04
  • C#使用Spire.Doc解决Word转PDF乱码/错位的方案

    C#使用Spire.Doc解决Word转PDF乱码/错位的方案

    在日常开发中,Word转PDF的功能需求十分常见,但实现过程中往往会遇到一些棘手的挑战,无论是系统自动生成的报告,还是用户上传的文档,转换后出现乱码、排版错位等问题,所以本文给大家介绍了如何使用Spire.Doc完美解决Word转PDF乱码/错位问题,需要的朋友可以参考下
    2025-09-09
  • Unity利用XML制作一个简易的登录系统

    Unity利用XML制作一个简易的登录系统

    这篇文章主要介绍了如何在Unity中利用XML文件制作一个简易的登录系统,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-03-03
  • C#找出字符串中第一个字母并大写的方法

    C#找出字符串中第一个字母并大写的方法

    这篇文章主要介绍了C#找出字符串中第一个字母并大写的方法,通过C#面向对象的方式定义了类的成员函数实现字符串转换的功能,需要的朋友可以参考下
    2016-02-02
  • C#中Mutex对象用法分析

    C#中Mutex对象用法分析

    这篇文章主要介绍了C#中Mutex对象用法,结合实例形式分析了Mutex对象的功能与线程操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • C#程序加密工具.Net Reactor详细教程

    C#程序加密工具.Net Reactor详细教程

    .Net Reacto加密工具是一款强大的 .NET 代码保护和授权管理系统,安全可靠、简单易用,主要用来帮助开发人员保护他们的 .NET 软件产品,本文给大家详细介绍C#程序加密工具.Net Reactor教程,感兴趣的朋友一起看看吧
    2022-02-02
  • C#利用TreeView控件实现目录跳转

    C#利用TreeView控件实现目录跳转

    这篇文章主要为大家详细介绍了C#润滑利用TreeView控件实现目录跳转功能,文中的示例代码讲解详细,感兴趣的小伙伴可以动手尝试一下
    2022-07-07
  • 利用C#实现Word信息自动化提取功能

    利用C#实现Word信息自动化提取功能

    在现代企业和个人工作中,Word文档作为信息承载和交流的核心载体,其重要性不言而喻,本文旨在深入探讨如何利用C#语言,结合强大的第三方库,高效、专业地读取Word文档的内置属性和自定义属性,为您的.NET开发项目提供一份全面的技术指南,需要的朋友可以参考下
    2025-12-12

最新评论