C#获取当前时间

本文详细介绍了如何使用DateTime类获取当前的时间和日期,包括日期、时间、日期+时间等不同格式的输出方法,以及如何进行时间的增减操作。
我们可以通过使用DataTime这个类来获取当前的时间。通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04)、时间(12:12:12)、日期+时间(2008-09-04 12:11:10)等。


//获取日期+时间
DateTime.Now.ToString();            // 2008-9-4 20:02:10
DateTime.Now.ToLocalTime().ToString();        // 2008-9-4 20:12:12

//获取日期
DateTime.Now.ToLongDateString().ToString();    // 2008年9月4日
DateTime.Now.ToShortDateString().ToString();    // 2008-9-4
DateTime.Now.ToString("yyyy-MM-dd");        // 2008-09-04
DateTime.Now.Date.ToString();            // 2008-9-4 0:00:00

//获取时间
DateTime.Now.ToLongTimeString().ToString();   // 20:16:16
DateTime.Now.ToShortTimeString().ToString();   // 20:16
DateTime.Now.ToString("hh:mm:ss");        // 08:05:57
DateTime.Now.TimeOfDay.ToString();        // 20:33:50.7187500

//其他
DateTime.ToFileTime().ToString();       // 128650040212500000
DateTime.Now.ToFileTimeUtc().ToString();   // 128650040772968750
DateTime.Now.ToOADate().ToString();       // 39695.8461709606
DateTime.Now.ToUniversalTime().ToString();   // 2008-9-4 12:19:14

DateTime.Now.Year.ToString();          获取年份   // 2008
DateTime.Now.Month.ToString();      获取月份   // 9
DateTime.Now.DayOfWeek.ToString(); 获取星期   // Thursday
DateTime.Now.DayOfYear.ToString(); 获取第几天   // 248
DateTime.Now.Hour.ToString();          获取小时   // 20
DateTime.Now.Minute.ToString();     获取分钟   // 31
DateTime.Now.Second.ToString();     获取秒数   // 45

//n为一个数,可以数整数,也可以事小数
dt.AddYears(n).ToString();   //时间加n年
dt.AddDays(n).ToString();   //加n天
dt.AddHours(n).ToString();   //加n小时
dt.AddMonths(n).ToString();   //加n个月
dt.AddSeconds(n).ToString();   //加n秒
dt.AddMinutes(n).ToString();   //加n分

<think>我们正在讨论C#获取系统时间的方法。根据引用内容,我们可以总结出以下几种常用方法: 1. **使用 `DateTime.Now` 获取当前系统时间** - 这是最常用的方法,返回当前本地日期和时间 - 示例:`DateTime currentTime = DateTime.Now;` 2. **格式化时间输出** - 使用 `ToString` 方法并传入格式字符串 - 示例:`string formattedTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");` - 输出格式如:2023-04-05 14:30:25 3. **获取特定时间部分** - 获取日期部分:`DateTime.Now.ToShortDateString()` 或 `DateTime.Now.ToString("yyyy-MM-dd")` - 获取时间部分: - `DateTime.Now.ToLongTimeString()` → 14:30:25 - `DateTime.Now.ToShortTimeString()` → 14:30 - `DateTime.Now.ToString("HH:mm:ss")` → 14:30:25 4. **时间计算** - 使用 `Add` 系列方法进行时间加减: - 前一秒:`DateTime.Now.AddSeconds(-1)` - 前一天:`DateTime.Now.AddDays(-1)` - 下一小时:`DateTime.Now.AddHours(1)` 5. **使用定时器实时更新时间显示** - 在WinForms中可使用Timer控件实时更新时间 - 示例代码: ```csharp // 初始化定时器 timer1.Interval = 1000; // 1秒更新一次 timer1.Tick += (s, e) => { labelTime.Text = DateTime.Now.ToString("HH:mm:ss"); }; timer1.Start(); ``` 6. **获取时间间隔(TimeSpan)** - 使用 `TimeOfDay` 属性获取当天经过的时间 - 示例:`TimeSpan timeSpan = DateTime.Now.TimeOfDay;` - 输出:14:30:25.7500000 7. **UTC时间获取** - 获取协调世界时:`DateTime.UtcNow` **重要注意事项:** - 时间格式区分大小写: - "HH"表示24小时制(00-23) - "hh"表示12小时制(01-12) - "MM"表示月份,"mm"表示分钟 - 时区处理:`DateTime.Now` 获取的是本地时区时间,跨时区应用建议使用UTC时间 **完整示例:** ```csharp using System; class Program { static void Main() { // 获取完整时间 DateTime now = DateTime.Now; Console.WriteLine("当前时间: " + now.ToString("F")); // 完整日期时间模式 // 仅日期 Console.WriteLine("今天日期: " + now.ToShortDateString()); // 自定义格式 Console.WriteLine("自定义格式: " + now.ToString("yyyy年MM月dd日 dddd HH点mm分")); // UTC时间 Console.WriteLine("UTC时间: " + DateTime.UtcNow.ToString("u")); // 时间计算(10分钟后) DateTime after10Mins = now.AddMinutes(10); Console.WriteLine("10分钟后: " + after10Mins.ToString("T")); // 获取时间间隔(从午夜开始) TimeSpan elapsedToday = now.TimeOfDay; Console.WriteLine($"今天已过去: {elapsedToday.Hours}小时{elapsedToday.Minutes}分"); } } ``` §§相关问题§§ 1. 如何在C#获取当前时间的毫秒数? 2. C#中如何计算两个日期之间的时间差? 3. 如何将字符串转换为DateTime对象? 4. C#中如何处理不同时区的时间转换? 5. DateTimeDateTimeOffset有什么区别? </think> ### C# 获取系统时间的方法总结 在C#获取系统时间主要通过 `DateTime` 类实现,以下是常用的方法: #### 1. 获取完整日期时间 ```csharp // 获取当前本地时间 DateTime now = DateTime.Now; // 格式化为标准字符串 (默认格式) string fullTime = DateTime.Now.ToString(); // 示例: 2023/4/5 14:30:25 // 自定义格式 string formattedTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // 2023-04-05 14:30:25 ``` #### 2. 获取日期部分 ```csharp string dateOnly = DateTime.Now.ToShortDateString(); // 2023/4/5 string longDate = DateTime.Now.ToLongDateString(); // 2023年4月5日 string customDate = DateTime.Now.ToString("yyyy/MM/dd"); // 2023/04/05 ``` #### 3. 获取时间部分 ```csharp string timeOnly = DateTime.Now.ToShortTimeString(); // 14:30 string longTime = DateTime.Now.ToLongTimeString(); // 14:30:25 string customTime = DateTime.Now.ToString("HH:mm:ss"); // 14:30:25 ``` #### 4. 获取时间间隔(TimeSpan) ```csharp TimeSpan timeOfDay = DateTime.Now.TimeOfDay; // 14:30:25.5000000 ``` #### 5. 时间计算 ```csharp // 获取前一秒 DateTime prevSecond = DateTime.Now.AddSeconds(-1); // 获取明天此时 DateTime tomorrow = DateTime.Now.AddDays(1); // 获取上周今天 DateTime lastWeek = DateTime.Now.AddDays(-7); ``` #### 6. 实时显示时间(使用Timer) ```csharp // 在WinForms中 timer1.Interval = 1000; // 1秒更新 timer1.Tick += (s, e) => { labelTime.Text = DateTime.Now.ToString("HH:mm:ss"); }; timer1.Start(); ``` #### 7. 获取UTC时间 ```csharp DateTime utcNow = DateTime.UtcNow; // 协调世界时 ``` #### 8. 时间戳转换 ```csharp // 获取Unix时间戳(秒) long timestamp = (long)(DateTime.UtcNow - new DateTime(1970,1,1)).TotalSeconds; // 时间戳转DateTime DateTime fromTimestamp = new DateTime(1970,1,1).AddSeconds(timestamp); ``` > **关键说明**: > 1. 格式符号区分大小写: > - `HH`:24小时制(00-23) > - `hh`:12小时制(01-12) > - `MM`:月份(01-12) > - `mm`:分钟(00-59) > 2. `DateTime.Now` 获取本地时间,`DateTime.UtcNow` 获取UTC时间 > 3. 时间计算时注意处理闰年和时区问题[^1][^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值