C# 日期和时间格式化

本 C# 部分涵盖了 C# 编程语言中可用的日期和时间格式化选项列表以及一个实际示例。

使用 C# DateTime 格式化日期和时间

C# DateTime 是 .NET 框架中 System 命名空间下的一个结构体,用于格式化日期和时间。由于 DateTime 是一个结构体(struct)而不是类(class),我们知道结构体是值类型,即 DateTime 可以作为对象创建,但不是引用。因为它是一个值类型,所以 DateTime 的变量或字段不能持有 null 值。

要存储 null 值,它们应使用问号 (?) 转换为可空类型。

示例:DateTime? dt = null

DateTime 表示的日期和时间范围从公元 0001 年 1 月 1 日 00:00:00 到公元 9999 年 12 月 31 日下午 11:59:59。

初始化 C# DateTime 对象

我们可以通过以下方式初始化 C# DateTime 对象来格式化日期和时间。

调用构造函数,可以是默认构造函数,也可以是带参数的构造函数。

例如,DateTime 的默认构造函数如下所示:

DateTime dt = new DateTime();

输出 1/1/0001 12:00:00 AM

一个带有年、月、日、小时、分钟和秒参数的 DateTime 重载构造函数如下所示:

DateTime dt = new DateTime(2018, 6, 12, 8, 20, 58);

通过赋值

将属性或方法返回的日期和时间值赋给 DateTime 对象,如下所示:

DateTime dt = DateTime.Now;

DateTime dt = DateTime.AddDays(20);

将字符串解析为 C# DateTime 值

Parse 和 TryParse 通常用于将字符串解析为其等效的日期和时间值。

DateTime dt = DateTime.Parse(“1985, 01, 14”);

在 C# 中格式化日期和时间

通常,日期和时间格式字符串使用格式说明符来定义其值的文本表示形式。

要定义日期和时间值的文本表示,如果使用单个格式说明符,则称之为“标准日期和时间格式字符串”。

如果日期和时间格式字符串包含多个字符(包括空格),则称之为“自定义格式字符串”。

下表显示了不同的 C# 日期和时间格式说明符及其结果。

格式说明符结果
D2018年7月30日
D30-07-2018
F2018年7月30日 23:38:50
F2018年7月30日 下午11:38
G30-07-2018 23:38:50
G30-07-2018 下午11:38
M7月30日
rMon, 30 July 2018 23:38:50 GMT
s2018-07-30T23:38:50
T23:38:50
t下午11:38
u2018-07-30 23:38:50Z
y2018年7月
dd30
ddd星期一
dddd星期一
hh11
HH11
mm38
MM07
MMM7月
MMMM七月
ss50
fff166
FFF469
ttPM
yy18
yyy018
yyyy2018

下表显示了不同的自定义 C# 日期和时间格式字符串及其结果。

C# 日期和时间格式结果
DateTime.Now.ToString(“MM/dd/yyyy”)07/31/2018
DateTime.Now.ToString(“dddd, dd MMMM yyyy”)2018年7月31日,星期二
DateTime.Now.ToString(“dddd, dd MMMM yyyy hh:mm”)2018年7月31日,星期二 08:15
DateTime.Now.ToString(“dddd, dd MMMM yyyy hh:mm tt”)2018年7月31日,星期二 08:15 PM
DateTime.Now.ToString(“dddd, dd MMMM yyyy h:mm”)2018年7月31日,星期二 8:15
DateTime.Now.ToString(“dddd, dd MMMM yyyy h:mm tt”)2018年7月31日,星期二 8:15 PM
DateTime.Now.ToString(“dddd, dd MMMM yyyy HH:mm:ss”)2018年7月31日,星期二 20:15:06
DateTime.Now.ToString(“MM/dd/yyyy HH:mm”)07-31-2018 20:15
DateTime.Now.ToString(“MM/dd/yyyy hh:mm tt”)07-31-2018 08:15 PM
DateTime.Now.ToString(“MM/dd/yyyy H:mm”)07-31-2018 20:15
DateTime.Now.ToString(“MM/dd/yyyy h:mm tt”)07-31-2018 8:15 PM
DateTime.Now.ToString(“MM/dd/yyyy HH:mm:ss”)07-31-2018 20:15:30 PM
DateTime.Now.ToString(“MMMM dd”)7月31日
DateTime.Now.ToString(“yyyy-MM-dd T HH:mm:ss.fffffffK”)2018-07-31 T 00:34:54.0306280+05:30
DateTime.Now.ToString(“ddd, dd MMM yyy HH: mm: ss GMT”)Tue, 31 Jul 2018 34:54:03 GMT
DateTime.Now.ToString(“yyyy-MM-dd T HH:mm:ss”)2018-07-31 T 20:15:30
DateTime.Now.ToString(“HH:mm”)20:15
DateTime.Now.ToString(“hh:mm tt”)08:15 PM
DateTime.Now.ToString(“H:mm”)20:15
DateTime.Now.ToString(“h:mm tt”)8:15 PM
DateTime.Now.ToString(“HH:mm:ss”)20:15:06
DateTime.Now.ToString(“yyyy MMMM”)2018年七月

C# 日期和时间格式化示例

让我们看一个格式化日期和时间的代码,并通过 DateTime 结构体的对象来演示其不同的属性和方法。

只需创建一个 Windows 窗体,在上面添加一个按钮,并在其按钮点击事件中编写以下代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DateTime current_date1;
            DateTime current_date2;
            DateTime current_date3;

            current_date1 = DateTime.Now;
            MessageBox.Show(current_date1.ToString());

            int day = current_date1.Day;
            MessageBox.Show(day.ToString());

            current_date2 = DateTime.Today;
            MessageBox.Show(current_date2.ToString());

            current_date3 = DateTime.Now.AddDays(30);
            MessageBox.Show(current_date3.ToString());

            string custom = current_date1.ToString("dddd, dd MMMM yyyy HH:mm:ss");
            MessageBox.Show(custom.ToString());
 
        }
    }
}

输出

C# Date Format Example

运行此日期和时间格式项目后,将打开以下窗口

Click the Button

当您单击该 button1 时,将显示带有日期的消息框。

Date Format 3

current_date1、current_date2 和 current_date3 是为 DateTime 创建的不同对象。

对象 current_date1 用于通过 DateTime 属性显示当前系统日期。

DateTime.Now;

当前系统日期显示在消息框中。

同样,DateTime.AddDays(30) 将通过在当前日期上增加30天来显示日期和时间。

最后,我们尝试显示自定义格式字符串 ddd, dd MMMM yyyy HH:mm:ss 的结果。

分类 C#