C# 的时间 datatime 观

前言:就目前做的项目来说,时间点很重要,抄袭一份其他人的,留给自己看。

唯一可惜的是看不到datetime 内部具体是怎么实现的,望看到的人可以留言告知

记得java是以内部是以int存储的

--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 小时制的小时。一位数的小时数有前导零。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 中的 DateTime 是一个结构体,用于表示日期和时间。它包含了年、月、日、时、分、秒、毫秒等成员,可以用来进行日期和时间的计算、比较、格式化等操作。 以下是一些 DateTime 常用的方法和属性: - Now:获取当前本地时间; - UtcNow:获取当前协调世界时(UTC)时间; - Today:获取当前日期(时间部分为 00:00:00); - AddDays、AddHours、AddMinutes、AddSeconds、AddMilliseconds:在 DateTime 对象上添加指定的时间间隔; - Subtract:计算两个 DateTime 对象之间的时间间隔; - Compare、Equals、CompareTo:比较两个 DateTime 对象的大小; - ToString:将 DateTime 对象转换为字符串,可以指定格式化字符串。 以下是一些使用 DateTime 的示例: ```csharp // 获取当前本地时间 DateTime now = DateTime.Now; // 获取当前协调世界时(UTC)时间 DateTime utcNow = DateTime.UtcNow; // 获取当前日期(时间部分为 00:00:00) DateTime today = DateTime.Today; // 在当前时间上增加一天 DateTime tomorrow = now.AddDays(1); // 计算两个时间之间的时间间隔 TimeSpan interval = tomorrow - now; // 比较两个时间的大小 bool isTomorrowLater = DateTime.Compare(tomorrow, now) > 0; // 将时间转换为字符串 string dateString = now.ToString("yyyy-MM-dd HH:mm:ss"); ``` 注意,DateTime 类型是不可变类型,任何对 DateTime 对象的修改都会返回一个新的 DateTime 对象。因此,在进行日期和时间操作时,应该注意不要改变原有的 DateTime 对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值