C#获取当前系统时间

1、--DateTime 数字型
System.DateTime currentTime=new System.DateTime();
取当前年月日时分秒 currentTime=System.DateTime.Now;
取当前年 int 年=currentTime.Year;
取当前月 int 月=currentTime.Month;
取当前日 int 日=currentTime.Day;
取当前时 int 时=currentTime.Hour;
取当前分 int 分=currentTime.Minute;
取当前秒 int 秒=currentTime.Second;
取当前毫秒 int 毫秒=currentTime.Millisecond; (变量可用中文)

取中文日期显示——年月日时分 string strY=currentTime.ToString(“f”); //不显示秒

取中文日期显示_年月 string strYM=currentTime.ToString(“y”);

取中文日期显示_月日 string strMD=currentTime.ToString(“m”);

取当前年月日,格式为:2003-9-23 string strYMD=currentTime.ToString(“d”);

取当前时分,格式为:14:24 string strT=currentTime.ToString(“t”);

DateTime.Now.ToString();//获取当前系统时间 完整的日期和时间
DateTime.Now.ToLongDateString();//只显示日期 xxxx年xx月xx日 ,一个是长日期
DateTime.Now.ToShortDateString();//只显示日期 xxxx-xx-xx 一个是短日期

//今天 DateTime.Now.Date.ToShortDateString();
//昨天 的 DateTime.Now.AddDays(-1).ToShortDateString();
//明天 的 DateTime.Now.AddDays(1).ToShortDateString();

//本周(注意这里的每一周是从周日始至周六止)
DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();

//上周,上周就是本周再减去7天

DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();
DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();

//下周 本周再加上7天

DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();
DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();

//本月 本月的第一天是1号,最后一天就是下个月一号再减一天。

DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + “1”; //第一天
DateTime.Parse(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + “1”).AddMonths(1).AddDays(-1).ToShortDateString();//最后一天

另一种方法:

DateTime now = DateTime.Now;
DateTime d1 = new DateTime(now.Year, now.Month, 1); //本月第一天

DateTime d2 = d1.AddMonths(1).AddDays(-1); //本月最后一天

PS:

DateTime.Now.DayOfWeek.ToString();//英文星期显示,Wednesday

(int)DateTime.Now.DayOfWeek 数字,若是周三,结果对应为3

DateTime.Now.ToString(“dddd”, new System.Globalization.CultureInfo(“zh-cn”)); //中文星期显示
DateTime.Now.ToString(“dddd”);//中文星期显示

DateTime.Now.ToString(“dddd,MMMM,dd ,yyyy”, new System.Globalization.DateTimeFormatInfo());//显示日期格式Friday,July, 01,2009

DateTime.Now.ToString(“dddd,dd MMMM,yyyy”) //输出 星期三,30 一月,2008

出处:http://msdn.microsoft.com/zh-cn/vstudio/bb762911(VS.95).aspx,如何:从特定日期中提取星期几

datetime类型在tostring()format的格式设置

参数format格式详细用法
 格式字符 关联属性/说明
 d ShortDatePattern
 D LongDatePattern
 f 完整日期和时间(长日期和短时间)
 F FullDateTimePattern(长日期和长时间)
 g 常规(短日期和短时间)
 G 常规(短日期和长时间)
 m、M MonthDayPattern
 r、R RFC1123Pattern
 s 使用当地时间的 SortableDateTimePattern(基于 ISO 8601)
 t ShortTimePattern
 T LongTimePattern
 u UniversalSortableDateTimePattern 用于显示通用时间的格式
 U 使用通用时间的完整日期和时间(长日期和长时间)
 y、Y YearMonthPattern

下表列出了可被合并以构造自定义模式的模式。这些模式是区分大小写的

d 月中的某一天。一位数的日期没有前导零。
 dd 月中的某一天。一位数的日期有一个前导零。
 ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。
 dddd 周中某天的完整名称,在 DayNames 中定义。
 M 月份数字。一位数的月份没有前导零。
 MM 月份数字。一位数的月份有一个前导零。
 MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。
 MMMM 月份的完整名称,在 MonthNames 中定义。
 y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
 yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。
 yyyy 包括纪元的四位数的年份。
 gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。

h 12 小时制的小时。一位数的小时数没有前导零。
 hh 12 小时制的小时。一位数的小时数有前导零。
 H 24 小时制的小时。一位数的小时数没有前导零。
 HH 24 小时制的小时。一位数的小时数有前导零。

2、获取当前时间是本年的第几周,本月的第几周
private static int getWeekNumInMonth(DateTime daytime)
{
int dayInMonth = daytime.Day;
//本月第一天
DateTime firstDay = daytime.AddDays(1 - daytime.Day);
//本月第一天是周几
int weekday = (int)firstDay.DayOfWeek == 0 ? 7 : (int)firstDay.DayOfWeek;
//本月第一周有几天
int firstWeekEndDay = 7 - (weekday - 1);
//当前日期和第一周之差
int diffday = dayInMonth - firstWeekEndDay;
diffday = diffday > 0 ? diffday : 1;
//当前是第几周,如果整除7就减一天
int WeekNumInMonth = ((diffday % 7) == 0
? (diffday / 7 - 1)
: (diffday / 7)) + 1 + (dayInMonth > firstWeekEndDay ? 1 : 0);
return WeekNumInMonth;
}

<think>我们正在回答用户关于C#获取当前系统时间的问题 根据引用内容,我们知道在C#中通常使用DateTime.Now来获取当前系统时间 同时,用户可能还需要了解如何格式化时间输出 我们将按照以下步骤回答: 1. 基本方法:使用DateTime.Now 2. 格式化时间:使用ToString和格式字符串 3. 其他相关操作:如获取特定时间(如前1秒) 4. 示例代码 注意:引用中提供了多种格式化的例子,我们可以参考并给出一些常用格式</think>在 C#获取当前系统时间主要通过 `DateTime` 结构实现,以下是详细方法和示例: ### 1. **基础获取方法** ```csharp // 获取当前日期和时间(包含毫秒) DateTime currentTime = DateTime.Now; // 输出默认格式(如:2023-10-05 14:30:45) Console.WriteLine("当前时间:" + currentTime.ToString()); ``` ### 2. **格式化输出** 通过 `ToString()` 指定格式字符串: ```csharp // 年月日时分秒(24小时制) string time1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // 年月日(中文格式) string time2 = DateTime.Now.ToString("yyyy年MM月dd日"); // 带毫秒的时间(如:14:30:45.123) string time3 = DateTime.Now.ToString("HH:mm:ss.fff"); // 星期和月份全称(如:Friday,July 01,2009) string time4 = DateTime.Now.ToString("dddd,MMMM dd,yyyy"); ``` ### 3. **获取特定时间点** ```csharp // 获取1秒前的时间 DateTime pastTime = DateTime.Now.AddSeconds(-1); // 获取1小时后的时间 DateTime futureTime = DateTime.Now.AddHours(1); ``` ### 4. **UTC 时间获取** ```csharp // 获取协调世界时(UTC) DateTime utcTime = DateTime.UtcNow; Console.WriteLine("UTC 时间:" + utcTime.ToString("u")); // 格式:2023-10-05 06:30:45Z ``` ### 完整示例 ```csharp using System; class Program { static void Main() { // 获取当前时间 DateTime now = DateTime.Now; // 基础格式 Console.WriteLine($"默认格式: {now}"); // 自定义格式 Console.WriteLine($"中文日期: {now:yyyy年MM月dd日}"); Console.WriteLine($"精确到毫秒: {now:HH:mm:ss.fff}"); // 时间计算 Console.WriteLine($"1秒前: {now.AddSeconds(-1):yyyy-MM-dd HH:mm:ss}"); Console.WriteLine($"UTC时间: {DateTime.UtcNow:u}"); } } ``` ### 注意事项 1. **时区处理**:`DateTime.Now` 返回服务器本地时区时间,跨时区应用建议使用 `DateTime.UtcNow` 配合时区转换[^1]。 2. **性能敏感场景**:高频调用时考虑缓存 `DateTime.Now` 值,避免重复计算。 3. **格式化符号**: - `yyyy`:四位年份 - `MM`:两位月份 - `dd`:两位日期 - `HH`:24小时制小时 - `fff`:毫秒 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

unity学习社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值