📜  C#中的DateTime.ToString()方法|套装– 1(1)

📅  最后修改于: 2023-12-03 15:00:16.646000             🧑  作者: Mango

C#中的DateTime.ToString()方法

DateTime.ToString()方法在C#中常用于将日期和时间值转换为符合指定格式的字符串。

语法
public string ToString(string format);
public string ToString(IFormatProvider provider);
参数
  • format: 可选参数,指定返回字符串的格式。可以是预定义格式字符串或自定义格式字符串。默认使用标准格式字符串。
  • provider: 可选参数,一个 IFormatProvider 接口实现,提供定义数字和日期/时间格式的对象。
示例
DateTime now = DateTime.Now;
string dateStr = now.ToString("yyyy-MM-dd");
string timeStr = now.ToString("HH:mm:ss");

上面代码中,我们生成了当前日期时间的实例now,并调用now.ToString()方法,将日期和时间转换成了符合指定格式的字符串。其中,"yyyy-MM-dd""HH:mm:ss"都是预定义的格式字符串。

预定义格式字符串

以下是常用的预定义格式字符串:

  • d: 短日期格式,如 2022/2/23
  • D: 长日期格式,如 2022年2月23日
  • f: 长日期时间格式,如 2022年2月23日 下午8:30
  • F: 全日期时间格式,如 2022年2月23日 星期三 下午8:30:30
  • g: 一般日期时间格式,如 2022/2/23 下午8:30
  • G: 通用日期时间格式,如 2022/2/23 下午8:30:30
  • m: 月日格式,如 2月23日
  • M: 月日格式,如 2月23日
  • o: ISO 8601日期格式,如 2022-02-23T20:30:30.0000000+08:00
  • R: RFC1123日期格式,如 Wed, 23 Feb 2022 12:30:30 GMT
  • s: 可排序日期时间格式,如 2022-02-23T20:30:30
  • t: 短时间格式,如 下午8:30
  • T: 长时间格式,如 下午8:30:30
  • u: 未指定时区的 UTC 日期时间格式,如 2022-02-23 12:30:30Z
  • U: UTC 完整日期时间格式,如 2022年2月23日 下午12:30:30
  • y: 年月格式,如 2022年2月

以上格式字符串均可在ToString方法中作为参数使用,例如:

DateTime now = DateTime.Now;
string dateStr = now.ToString("U");

以上代码将当前日期时间转换为完整的 UTC 日期时间格式。

自定义格式字符串

除了预定义格式字符串,ToString方法还支持自定义格式字符串。自定义格式字符串由以下标识符组成:

  • d: 日期,格式由/分隔符隔开,如 yyyy/MM/dd 表示年/月/日
  • t: 时间,格式由:分隔符隔开,如 HH:mm:ss 表示时/分/秒
  • f: 时间和日期,如 yyyy-MM-dd HH:mm:ss 表示年-月-日 时:分:秒
  • F: 时间和日期,如 yyyy年MM月dd日 HH时mm分ss秒 表示年月日 时分秒
  • g: 通用日期短时间,如 yyyy-M-d H:m:s 表示年-月-日 时:分:秒
  • G: 通用日期时间,如 yyyy-M-d H:m:s 表示年-月-日 时:分:秒
  • %: 转义字符,将后面的字符视为普通字符串

例如:

DateTime now = DateTime.Now;
string dateStr = now.ToString("yyyy年MM月dd日 HH:mm:ss");

以上代码将当前日期时间转换为形如“2022年02月23日 20:30:30”的字符串。

注意事项
  • 日期时间格式大小写不敏感,也可以不按照大小写规范书写。例如,hh:mm:ssHH:MM:SS 都可以表示小时:分钟:秒钟。
  • 自定义格式字符串中,未被格式化的字符原样输出。
  • 格式化后的字符串格式依赖于当前系统语言和区域设置。
  • 自定义格式字符串中的标识符需要区分大小写,例如mm表示分,而MM表示月。

以上就是关于C#中DateTime.ToString()方法的介绍。ToString()方法非常灵活,支持多种预定义和自定义格式字符串,可以满足大部分的日期时间格式化需求。