DateTime Tips(System.Runtime Version=4.2.1.0

抛砖引玉,如有错误或是更好的方式还望不吝赐教

1. 根据某个DateTime对象取其当天的起始时间
例如:
输入是 2019-01-14T01:27:59.260Z
输出为 2019-01-14T00:00:00.000Z

var result = sourceDate.Date;  //sourceDate为DateTime类型

另,如果是当日时间可以直接使用 Date.Today

2. AM与PM
12:00AM是午夜
12:00PM是正午

14日 12:00AM 这个时间使用 addHours(-1)得到的是13日11:00PM
14日 12:00AM 这个时间使用 addHours(1) 得到的是14日1:00AM

3. 每周的开始时间

有时候我们需要自定义每周从哪一天开始(例如:国外周六,国内周一。某x石传说周四更新乱斗等等)

先来看看.Net Core 自带的DayOfWeek枚举

    //
// 摘要:
// Specifies the day of the week.
public enum DayOfWeek
{
Sunday = ,
Monday = ,
Tuesday = ,
Wednesday = ,
Thursday = ,
Friday = ,
Saturday =
}
// 使用DayOfWeek中的值,这里配置每周从周几开始,如周四weekBeginDay=4
var weekBeginDay = ; // 确定给定日期在DayOfWeek的order,此处使用系统当日日期
var order = (int)DateTime.Today.DayOfWeek; // 计算修正日期,如果给定日期(以系统今日时间Today为例)order大于等于一周开始时间的order, 则修正值为给定日期order与一周开始时间的order的差。
// 如周一为每周开始时间,则周四时修正值为4-1=3.
// 如果给定日期order小于一周开始时间的order,则需额外加7
correctionCount = todayOrder < weekBeginDay ? todayOrder - weekBeginDay + : todayOrder - weekBeginDay // 所以给定日期所在周期的开始结束时间分别为
var weekBegin = DateTime.Today.AddDays( - correctionCount);
var weekEnd = DateTime.Today.AddDays( - correctionCount);

4.园子里Pickuper的C#语言之“string格式的日期时间字符串转为DateTime类型”的方法讲的很好,只是最后部分的格式有点乱了,整理如下

// 日期格式:yyyyMMdd HH:mm:ss(注意此字符串的字母大小写很严格)yyyy代表年份MM代表月份dd代表天HH代表小时(24小时制)mm代表分钟ss代表秒

DateTime.Now.ToShortTimeString();
DateTime dt = DateTime.Now;
dt.ToString();//2005-11-5 13:21:25
dt.ToFileTime().ToString();//
dt.ToFileTimeUtc().ToString();//
dt.ToLocalTime().ToString();//2005-11-5 21:21:25
dt.ToLongDateString().ToString();//2005年11月5日
dt.ToLongTimeString().ToString();//13:21:25
dt.ToOADate().ToString();//38661.5565508218
dt.ToShortDateString().ToString();//2005-11-5
dt.ToShortTimeString().ToString();//13:21
dt.ToUniversalTime().ToString();//2005-11-5 5:21:25
dt.Year.ToString();//
dt.Date.ToString();//2005-11-5 0:00:00
dt.DayOfWeek.ToString();//Saturday
dt.DayOfYear.ToString();//
dt.Hour.ToString();//
dt.Millisecond.ToString();//
dt.Minute.ToString();//
dt.Month.ToString();//
dt.Second.ToString();//
dt.Ticks.ToString();//
dt.TimeOfDay.ToString();//13:30:28.4412864
dt.ToString();//2005-11-5 13:47:04
dt.AddYears().ToString();//2006-11-5 13:47:04
dt.AddDays(1.1).ToString();//2005-11-6 16:11:04
dt.AddHours(1.1).ToString();//2005-11-5 14:53:04 多了1小时6分钟 此处是支持Double类型的
dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04
dt.AddMonths().ToString();//2005-12-5 13:47:04
dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05 ,此处直接使用Tostring被精度限制了
dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10
dt.AddTicks().ToString();//2005-11-5 13:47:04
dt.CompareTo(dt).ToString();//
dt.Add(?).ToString();//问号为一个时间段
dt.Equals("2005-11-6 16:11:04").ToString();//False
dt.Equals(dt).ToString();//True
dt.GetHashCode().ToString();//
dt.GetType().ToString();//System.DateTime
dt.GetTypeCode().ToString();//DateTime
dt.GetDateTimeFormats('s')[].ToString();//2005-11-05T14:06:25
dt.GetDateTimeFormats('t')[].ToString();//14:06
dt.GetDateTimeFormats('y')[].ToString();//2005年11月
dt.GetDateTimeFormats('D')[].ToString();//2005年11月5日
dt.GetDateTimeFormats('D')[].ToString();//2005 11 05
dt.GetDateTimeFormats('D')[].ToString();//星期六 2005 11 05
dt.GetDateTimeFormats('D')[].ToString();//星期六 2005年11月5日
dt.GetDateTimeFormats('M')[].ToString();//11月5日
dt.GetDateTimeFormats('f')[].ToString();//2005年11月5日 14:06
dt.GetDateTimeFormats('g')[].ToString();//2005-11-5 14:06
dt.GetDateTimeFormats('r')[].ToString();//Sat, 05 Nov 2005 14:06:25 GMT
string.Format("{0:d}",dt);//2005-11-5 string.Format("{0}",dt);//2005年11月5日
string.Format("{0:f}",dt);//2005年11月5日 14:23
string.Format("{0:F}",dt);//2005年11月5日 14:23:23
string.Format("{0:g}",dt);//2005-11-5 14:23
string.Format("{0:G}",dt);//2005-11-5 14:23:23
string.Format("{0:M}",dt);//11月5日
string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT
string.Format("{0:s}",dt);//2005-11-05T14:23:23
string.Format("{0:t}",dt);//14:23
string.Format("{0:T}",dt);//14:23:23
string.Format("{0:u}",dt);//2005-11-05 14:23:23Z
string.Format("{0:U}",dt);//2005年11月5日 6:23:23
string.Format("{0:Y}",dt);//2005年11月
string.Format("{0}",dt);//2005-11-5 14:23:23
string.Format("{0:yyyyMMddHHmmssffff}",dt); // 计算2个日期之间的天数差 -----------------------------------------------
DateTime dt1 = Convert.DateTime("2007-8-1");
DateTime dt2 = Convert.DateTime("2007-8-15");
TimeSpan span = dt2.Subtract(dt1);
int dayDiff = span.Days + ; // 计算某年某月的天数 -----------------------------------------------
int days = DateTime.DaysInMonth(, ); //days = 31; // 给日期增加一天、减少一天 -----------------------------------------------
DateTime dt =DateTime.Now;
dt.AddDays();//增加一天
dt.AddDays(-);//减少一天 其它年份方法类似... // Oracle SQL里转换日期函数 -----------------------------------------------
to_date("2007-6-6",'YYYY-MM-DD");
to_date("2007/6/6",'yyyy/mm/dd");

另:

dt.AddHours(1.1).ToString();//2005-11-5 14:53:04 多了1小时6分钟 此处是支持Double类型的

并非所有Add~系列的方法均支持Double类型的,

具体为:

public DateTime Add(TimeSpan value);
public DateTime AddDays(double value);
public DateTime AddHours(double value);
public DateTime AddMilliseconds(double value);
public DateTime AddMinutes(double value);
public DateTime AddMonths(int months);
public DateTime AddSeconds(double value);
public DateTime AddTicks(long value);
public DateTime AddYears(int value);

以上。

DateTime Tips的更多相关文章

  1. Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解

    Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全   Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...

  2. .NET DateTime类型变量作为参数时设置默认值

    一个小的 Tips. .NET 中函数参数的默认值需要是编译时常量.如果参数是引用类型,可以设置Null,如果是值类型,可以设置相应的编译时常量,如整型可以用整数,但对于DateTime(结构体,值类 ...

  3. 小菜的SharePoint Tips

    07. 设计模式应用案例(下) 前文用C#代码实现了Facade模式.Adapter模式.Strategy模式.Bridge模式和Abstract Factory模式解决实际业务需求.本文将继续以C# ...

  4. PyPI - Datetime

    PyPI for Python 3.7 import datetime https://docs.python.org/3.7/library/datetime.html timedelta Obje ...

  5. C# DateTime与时间戳转换

    C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳. 1. 什么是时间戳 首先要清楚JavaScript与Unix的时间戳的区别: JavaScript时间戳: ...

  6. C# DateTime日期格式化

    在C#中DateTime是一个包含日期.时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式. 目录 1. 分类 2. 制式类型 3. ...

  7. Mac上MySQL忘记root密码且没有权限的处理办法&workbench的一些tips (转)

    忘记Root密码肿么办 Mac上安装MySQL就不多说了,去mysql的官网上下载最新的mysql包以及workbench,先安装哪个影响都不大.如果你是第一次安装,在mysql安装完成之后,会弹出来 ...

  8. 2000条你应知的WPF小姿势 基础篇<74-77 WPF 多窗口Tips>

    在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000ThingsYou Should Know About C# 和 2,00 ...

  9. 在面试中忽然发现DateTime的一些...

    今天说说我面试中碰到的一个小问题,在我问起DateTime为什么无法赋值NULL值,一般第一反应都认为它是值类型,不是引用类型,但随后我查阅了度娘自我学习到它是结构类型,那么随之而然就无法赋值NULL ...

随机推荐

  1. 和同门一起做的PHP网站

    用的是PHP语言开发,使用ThinkPHP框架,数据库是mysql  统计是用的站长统计,前端很多都是别人网 上扒下来的.css.js水平不高啊.服务器是香港恒创科技的,性价比还可以哦,而且还免备案. ...

  2. keystonejs开发中解决bug--版本要对应

    今天要调试bug,先说明一下背景!有需求要修改keystonejs的后台管理页面,然后是看官方文档知道后台管理也是react+redux.然后为了加强后台管理页的功能(如汉化),然后将keystone ...

  3. C# 使用 SmtpClient.SendAsync 方法发送邮件失败,总是返回 Cancelled

    问题: 调用 SmtpClient.SendAsync,在 SendCompleted 的回调函数里面总是获取到 e.Cancelled 为 true. 后来测试了一下,相同的代码,只是把 SmtpC ...

  4. ztre的使用入门

    1.首先需要下载ztree插件, 2.把下载的插件中的js和css放到项目中去(img文件默认放到css文件下方,如果把img文件放到其他地方,加载出来的树将没有默认图标(文件夹图标)和节点前的展开闭 ...

  5. VC++中字符串编码处理的一些相关问题

    前言 什么是tchar? 百度百科对其的定义如下": 因为C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包 ...

  6. spring cloud中利用sidecar整合异构语言(转)

    用spring cloud sidecar的整合异构语言,以前做过没有做笔记,现在再做由于各种坑又浪费了一天,这里记一下 首先是官网:http://cloud.spring.io/spring-clo ...

  7. 基于 WebRTC 创建一款多人联机游戏

    本项目的目标旨在尽可能少用服务器资源的前提下研发一款在线多人游戏,同时期望在一个用户的浏览器上运行游戏,同时让另一个玩家来连接.此外还希望程序尽可能简单以便于在博客中分析. 运用的技术 在我刚接触 P ...

  8. AWS的区域和可用区概念解释

    AWS的每个区域一般由多个可用区(AZ)组成,而一个可用区一般是由多个数据中心组成.AWS引入可用区设计主要是为了提升用户应用程序的高可用性.因为可用区与可用区之间在设计上是相互独立的,也就是说它们会 ...

  9. Mabits简单应用 2017.8.3

    http://www.cnblogs.com/wushiqi54719880/archive/2011/07/26/2117601.html

  10. VMware12下CentOS 7安装教程

    CentOS 7 DVD安装光盘(百度搜索CentOS即可找到官方主页):VMware Workstation 12 Pro及以上软件: 启动VMware Workstation 12 Pro程序,在 ...