转为日期类型

将8位日期字符串转换为日期格式

dateStr = "20220203";
System.IFormatProvider format=new System.Globalization.CultureInfo("zh-CN",true);
string strDateFormat = "yyyyMMdd";//指定转换格式
date = DateTime.ParseExact(dateStr,strDateFormat,format, DateTimeStyles.AllowWhiteSpaces);

将6位字符串转化为日期格式

dateStr = "202202";
System.IFormatProvider format=new System.Globalization.CultureInfo("zh-CN",true);
string strDateFormat = "yyyyMM";//指定转换格式
date = DateTime.ParseExact(dateStr,strDateFormat,format, DateTimeStyles.AllowWhiteSpaces); var str = "2022/02/03";
var time = new DateTime();
if (DateTime.TryParse(str, out time))
{
Console.WriteLine($"转化成功{time}");
}

采用拼接连接符的方式进行日期转换(不建议采用)

 //分别获取20051126中的年、月、日字符串
string yyyy="20051126".Substring(0,4);
string mm="20051126".Substring(4,2);
string dd="20051126".Substring(5,2); //拼写符合日期格式的字符串
string riqi=yyyy+"-"+mm+"-"+dd; //将符合日期格式的字符串转化为DateTime数据类型
DateTime dt = Convert.ToDateTime(riqi);

使用字符串插入函数进行日期转换

// 把20051126变为2005/11/26
DateTimeFormatInfo dtFormat = new System.GlobalizationDateTimeFormatInfo();
dtFormat.ShortDatePattern = "yyyy/MM/dd";
string s = "20051126";
s = s.Insert(4,"/");
s = s.Insert(7,"/");
DateTime dt = Convert.ToDateTime(s, dtFormat);

获取星期几

string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
var a = Day[Convert.ToInt16(DateTime.Now.DayOfWeek)];
Console.WriteLine(a);

DateTime时间格式转换为Unix时间戳格式

System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
long t = (time.Ticks - startTime.Ticks) / 10000; //除10000调整为13位

优雅的获取农历

ChineseLunisolarCalendar ChineseCalendar = new ChineseLunisolarCalendar();
int year = ChineseCalendar.GetYear(DateTime.Now);
int day = ChineseCalendar.GetDayOfMonth(DateTime.Now);
int month = ChineseCalendar.GetMonth(DateTime.Now);
int leapMonth = ChineseCalendar.GetLeapMonth(year);
string date = string.Format("农历{0}{1}({2})年{3}{4}月{5}{6}"
, "甲乙丙丁戊己庚辛壬癸"[(year - 4) % 10]
, "子丑寅卯辰巳午未申酉戌亥"[(year - 4) % 12]
, "鼠牛虎兔龙蛇马羊猴鸡狗猪"[(year - 4) % 12]
, month == leapMonth ? "闰" : ""
, "无正二三四五六七八九十冬腊"[leapMonth > 0 && leapMonth <= month ? month - 1 : month]
, "初十廿三"[day / 10]
, "十一二三四五六七八九"[day % 10]);
Console.WriteLine($"当前时间:{DateTime.Now},农历是:"+date);
//输出:当前时间:2022/10/18 18:27:00,农历是:农历壬寅(虎)年九月廿三

获取二十四节气

//输入new DateTime(2022,10,23) 输出 霜降
//输入new DateTime(2022,10,8) 输出 寒露
//输入new DateTime(2022,10,18) 输出 “” 【暂无节气】
public static string ChineseTwentyFourDay(DateTime date1)
{
string[] SolarTerm = new string[] { "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至" };
int[] sTermInfo = new int[] { 0, 21208, 42467, 63836, 85337, 107014, 128867, 150921, 173149, 195551, 218072, 240693, 263343, 285989, 308563, 331033, 353350, 375494, 397447, 419210, 440795, 462224, 483532, 504758 };
DateTime baseDateAndTime = new DateTime(1900, 1, 6, 2, 5, 0); //#1/6/1900 2:05:00 AM#
DateTime newDate;
double num;
int y;
string tempStr = ""; y = date1.Year; for (int i = 1; i <= 24; i++)
{
num = 525948.76 * (y - 1900) + sTermInfo[i - 1]; newDate = baseDateAndTime.AddMinutes(num);//按分钟计算
if (newDate.DayOfYear == date1.DayOfYear)
{
tempStr = SolarTerm[i - 1];
break;
}
}
public static string ChineseTwentyFourDay(DateTime date1)
{
string[] SolarTerm = new string[] { "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至" };
int[] sTermInfo = new int[] { 0, 21208, 42467, 63836, 85337, 107014, 128867, 150921, 173149, 195551, 218072, 240693, 263343, 285989, 308563, 331033, 353350, 375494, 397447, 419210, 440795, 462224, 483532, 504758 };
DateTime baseDateAndTime = new DateTime(1900, 1, 6, 2, 5, 0); //#1/6/1900 2:05:00 AM#
DateTime newDate;
double num;
int y;
string tempStr = ""; y = date1.Year; for (int i = 1; i <= 24; i++)
{
num = 525948.76 * (y - 1900) + sTermInfo[i - 1]; newDate = baseDateAndTime.AddMinutes(num);//按分钟计算
if (newDate.DayOfYear == date1.DayOfYear)
{
tempStr = SolarTerm[i - 1];
break;
}
}
return tempStr;
}return tempStr;
}

转为字符串类型

 //2021年4月24日
System.DateTime.Now.ToString("D");
//2021-4-24
System.DateTime.Now.ToString("d");
//2021年4月24日 16:30:15
System.DateTime.Now.ToString("F");
//2021年4月24日 16:30
System.DateTime.Now.ToString("f");
//2021-4-24 16:30:15
System.DateTime.Now.ToString("G");
//2021-4-24 16:30
System.DateTime.Now.ToString("g");
//16:30:15
System.DateTime.Now.ToString("T");
//16:30
System.DateTime.Now.ToString("t");
//2021年4月24日 8:30:15
System.DateTime.Now.ToString("U");
//2021-04-24 16:30:15Z
System.DateTime.Now.ToString("u");
//4月24日
System.DateTime.Now.ToString("m");
System.DateTime.Now.ToString("M");
//Tue, 24 Apr 2021 16:30:15 GMT
System.DateTime.Now.ToString("r");
System.DateTime.Now.ToString("R");
//2021年4月
System.DateTime.Now.ToString("y");
System.DateTime.Now.ToString("Y");
//2021-04-24T15:52:19.1562500+08:00
System.DateTime.Now.ToString("o");
System.DateTime.Now.ToString("O");
//2021-04-24T16:30:15
System.DateTime.Now.ToString("s");
//2021-04-24 15:52:19
System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
//2021年04月24 15时56分48秒
System.DateTime.Now.ToString("yyyy年MM月dd HH时mm分ss秒");
//星期二, 四月 24 2021
System.DateTime.Now.ToString("dddd, MMMM dd yyyy");
//二, 四月 24 ’08
System.DateTime.Now.ToString("ddd, MMM d \"’\"yy");
//星期二, 四月 24
System.DateTime.Now.ToString("dddd, MMMM dd");
//4-08
System.DateTime.Now.ToString("M/yy");
//24-04-08
System.DateTime.Now.ToString("dd-MM-yy"); //今天 获取短时间类型 2022/10/18 0:00:00
DateTime.Now.Date.ToShortDateString(); //7天后
DateTime.Now.Date.ToShortDateString();
DateTime.Now.AddDays(7).ToShortDateString();
//7天前
DateTime.Now.AddDays(-7).ToShortDateString();
DateTime.Now.Date.ToShortDateString();

推荐阅读

资料参考

欢迎关注我的公众号“Net分享”,技术文章第一时间推送 , 分享一些你可能注意不到的细节。

C#日期类型转化总结【转化,农历,节气,星期】的更多相关文章

  1. R语言与格式、日期格式、格式转化

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言的基础包中提供了两种类型的时间数据,一类 ...

  2. java~日期与字符串的转化

    在Java里我们可以通过SimpleDateFormat实现日期类型的格式化,即将它转为指定格式的字符串,当然像YearMonth这种特殊的类型,实现字符串转化最为容易,即直接toString()即可 ...

  3. 基本类型互相之间转化可以用Covent类来实现。

    一.C#类型的转换 在c#中类型的转换分两种:显式和隐式,基本的规则如下: 1.基类对象转化为子类对象,必须显式转换,规则:(类型名) 对象.2.值类型和引用类型的转换采用装箱(boxing)或拆箱( ...

  4. java类继承总结一 父类类型与子类类型之间的转化问题(转)

    java类继承总结一 父类类型与子类类型之间的转化问题 本文将通过一个实例描述父类类型与子类类型之间的转化问题,这个很特殊的问题常常会导致一些潜在的危险,让你整整一个晚上都在调试程序以解决一个让人抓狂 ...

  5. 再谈怎样以最简单的方法将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式

    今天review代码,看见某些大爷在将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式时仍然仅仅顾结果不注重过程,"大爷"咱能负点责任吗? 将泛型为St ...

  6. Java Hour 50 日期类型

    Plan List: 1 Java 中的日期类型 2 mysql 相关 3 java code style 鉴于本问题太过普通,所以参考文章满大街都是,因此本文内容基本为转载和验证. java.sql ...

  7. flex4 日期类型字符串转日期类型(string转Date)(转)

    mysql数据库中存储的日期类型通过PHP返回到flex端为字符串类型,这样在flex中进行处理时就必须要将字符串转化为Date类型.如果仅仅是 "年/月/日" 的组合,而没有涉及 ...

  8. DateTimeHelper【日期类型与字符串互转以及日期对比相关操作】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 实现日期和字符串之间的转换以及日期的相关操作: 1.日期格式的字符串输出为Date类型: 2.将Date类型以指定格式输出: 3.将 ...

  9. 读取Excel表格日期类型数据的时候

    用POI读取Excel数据:(版本号:POI3.7) 1.读取Excel 2.Excel数据处理: Excel存储日期.时间均以数值类型进行存储,读取时POI先判断是是否是数值类型,再进行判断转化 1 ...

  10. [Python]xlrd 读取excel 日期类型2种方式

    有个excle表格须要做一些过滤然后写入数据库中,可是日期类型的cell取出来是个数字,于是查询了下解决的办法. 主要的代码结构 data = xlrd.open_workbook(EXCEL_PAT ...

随机推荐

  1. JAVAEE——maven安装

    一.安装本地Maven 注意:检查JAVA_HOME环境变量, maven本身就是java写的,所以要求必须先安装JDK,检查本机jak环境win+r后输入cmd,然后输入java -version, ...

  2. 补天云全网独有技术和唯一实用工具:QT6框架QML源码保护工具应用 QML和JavaScript源码隐藏工具

    如何保护和隐藏你的QT应用中的QML源代码?补天云全网独有技术和唯一实用工具:QT6框架QML源码保护工具应用 QML和JavaScript源码隐藏工具 简介 在通常的QT QML应用程序中,QML语 ...

  3. mysql 批量有则修改,无则新增

    需要为表添加唯一索引 alter table tb_*** add unique index(aa,bb); -- 此条为联合唯一索引INSERT INTO<include refid=&quo ...

  4. 深入理解 Nuxt.js 中的 app:error:cleared 钩子

    title: 深入理解 Nuxt.js 中的 app:error:cleared 钩子 date: 2024/9/28 updated: 2024/9/28 author: cmdragon exce ...

  5. php中的跳转

    php中的跳转 header("refresh:3;url=http://www.baidu.com";); <meta http-equiv='refresh' conte ...

  6. 65.说下vue3的使用感想(说些vue3对比vue3的方便之处)

    vue3 使用了组合式API,setup 替换了选项式api ,不需要在多个api里面写代码了,而且使用了setup的语法糖,可以更加方便写代码 : vue3使用proxy替代了Object.defi ...

  7. 6.flask 源码解析:响应

    目录 一.flask 源码解析:响应 1.1 response 简介 1.2 flask 响应(response) 1.3 werkzeug response 1.4 自定义 response Fla ...

  8. 基于 WeDataSphere Prophecis 与 KubeSphere 构建云原生机器学习平台

    KubeSphere 开源社区的小伙伴们,大家好.我是微众银行大数据平台的工程师周可,接下来给大家分享的是基于 WeDataSphere 和 KubeSphere 这两个开源社区的产品去构建一个云原生 ...

  9. 我在大厂做 CR——如何体系化防控空指针异常

    大家好,我是木宛哥,今天和大家分享下--代码 CR 时针对恼人的空指针异常(NullPointerException)如何做到体系化去防控: 什么是空指针异常 从内存角度看,对象的实例化需要在堆内存中 ...

  10. Web渗透02_信息搜集

    以两个测试工具官方给出的用于工具实践的网站.一定不要拿在运营的网站做测试. http://testfire.net http://vulnweb.com DNS信息搜集 关注域名注册商,管理员的邮箱电 ...