DateTime.ToString 方法

博客介绍了DateTime.ToString的多种用法,通过示例展示如何使用不同格式获取时间字符串。代码中定义了多种格式,利用循环将当前时间按各格式转换并输出,方便获取不同格式的时间字符串。

今天才知道,原来DateTime.ToString还有这么多用法,有了这个例子,想要得到不同格式的时间字符串就方便多了

using System;
using System.Globalization;

public class MainClass {
   public static void Main(string[] args)  {
       DateTime dt = DateTime.Now;
       String[] format = {
           "d", "D",
           "f", "F",
           "g", "G",
           "m",
           "r",
           "s",
           "t", "T",
           "u", "U",
           "y",
           "dddd, MMMM dd yyyy",
           "ddd, MMM d /"'/"yy",
           "dddd, MMMM dd",
           "M/yy",
           "dd-MM-yy",
       };
       String date;
       for (int i = 0; i < format.Length; i++) {
           date = dt.ToString(format[i], DateTimeFormatInfo.InvariantInfo);
           Console.WriteLine(String.Concat(format[i], " :" , date));
       }


 
  /** Output.

   *
   * d :08/17/2000
   * D :Thursday, August 17, 2000
   * f :Thursday, August 17, 2000 16:32
   * F :Thursday, August 17, 2000 16:32:32
   * g :08/17/2000 16:32
   * G :08/17/2000 16:32:32
   * m :August 17
   * r :Thu, 17 Aug 2000 23:32:32 GMT
   * s :2000-08-17T16:32:32
   * t :16:32
   * T :16:32:32
   * u :2000-08-17 23:32:32Z
   * U :Thursday, August 17, 2000 23:32:32
   * y :August, 2000
   * dddd, MMMM dd yyyy :Thursday, August 17 2000
   * ddd, MMM d "'"yy :Thu, Aug 17 '00
   * dddd, MMMM dd :Thursday, August 17
   * M/yy :8/00
   * dd-MM-yy :17-08-00
   */
   }
}
<think>我们正在讨论C#中的DateTime.Now.ToString()方法的使用。根据引用[2]和[3],我们可以知道ToString()方法可以接受格式字符串参数,以不同的格式输出当前日期和时间。 用户的问题是想了解DateTime.Now.ToString的使用方法和相关知识。我们需要解释基本用法,以及如何通过格式字符串自定义输出。 同时,我们注意到引用[1]中有一个生成文件名的示例,它使用DateTime.Now生成一个字符串,格式为年月日时分秒(例如:20230424123045),但该引用中的代码有误(重复赋值fileName,且格式字符串不正确)。我们将给出正确的示例。 步骤: 1. 介绍DateTime.Now属性:获取当前日期和时间。 2. 介绍ToString()方法:将DateTime对象转换为字符串表示形式。 - 无参数调用:使用当前区域性的默认格式。 - 带格式字符串参数:按照指定格式输出。 3. 列举一些常用的格式字符串及其输出示例(参考引用[2]和[3])并补充一些其他常用格式。 4. 注意:格式字符串区分大小写。 另外,引用[1]中试图生成一个不带分隔符的日期时间字符串用于文件名,我们可以给出正确的方法。 根据以上信息,我们组织回答。 </think> ### DateTime.Now.ToString() 使用指南 `DateTime.Now` 是 C# 中获取当前系统日期和时间的属性,`ToString()` 方法用于将其格式化为字符串。以下是核心使用方法: #### 1. **基础用法** ```csharp // 默认格式:2023/12/31 14:30:45 string currentTime = DateTime.Now.ToString(); ``` #### 2. **自定义格式** 通过格式字符串控制输出(区分大小写): | 格式符 | 说明 | 示例 | |--------|----------------------|--------------------------| | `"yyyy"` | 四位年份 | `2023` | | `"MM"` | 两位月份 | `12` | | `"dd"` | 两位日期 | `31` | | `"HH"` | 24小时制小时 | `14` | | `"mm"` | 分钟 | `30` | | `"ss"` | 秒 | `45` | | `"tt"` | AM/PM 指示器 | `PM` | **示例代码:** ```csharp // 输出:2023-12-31 DateTime.Now.ToString("yyyy-MM-dd"); // 输出:2023年12月31日 14:30 DateTime.Now.ToString("yyyy年MM月dd日 HH:mm"); // 输出:20231231_143045 (适合文件名) DateTime.Now.ToString("yyyyMMdd_HHmmss"); ``` #### 3. **预定义格式** .NET 提供标准格式字符简化操作: ```csharp DateTime.Now.ToString("d"); // 短日期 → 2023/12/31 DateTime.Now.ToString("D"); // 长日期 → 2023年12月31日 DateTime.Now.ToString("t"); // 短时间 → 14:30 DateTime.Now.ToString("T"); // 长时间 → 14:30:45 DateTime.Now.ToString("f"); // 完整日期时间(短时)→ 2023年12月31日 14:30 ``` #### 4. **区域适配** 自动匹配系统区域设置: ```csharp // 中文环境:2023-12-31 // 英文环境:12/31/2023 DateTime.Now.ToString("d"); ``` #### 5. **特殊场景应用** - **生成时间戳文件名**: ```csharp string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; // 输出:20231231143045.log ``` - **数据库时间格式**: ```csharp DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); // 2023-12-31 14:30:45.123 ``` > ⚠️ **注意事项** > - 格式符号区分大小写(`MM` 为月份,`mm` 为分钟) > - 单字符格式符需加 `%` 前缀避免歧义:`DateTime.Now.ToString("%h")` 输出当前小时(12小时制) > - 使用 `CultureInfo` 可强制指定区域: > `DateTime.Now.ToString("d", new CultureInfo("en-US"))` [^1]: 基础时间格式化示例 [^2]: 标准日期格式符参考 [^3]: 长日期与短日期对比
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值