欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#日期格式字符串的相互转换操作实例分析

程序员文章站 2022-03-11 12:05:58
本文实例讲述了c#日期格式字符串的相互转换操作。分享给大家供大家参考,具体如下: 方法一:convert.todatetime(string) string格式有要求,...

本文实例讲述了c#日期格式字符串的相互转换操作。分享给大家供大家参考,具体如下:

方法一:convert.todatetime(string)

string格式有要求,必须是yyyy-mm-dd hh:mm:ss

方法二:convert.todatetime(string, iformatprovider)

datetime dt;
datetimeformatinfo dtformat = new system.globalizationdatetimeformatinfo();
dtformat.shortdatepattern = "yyyy/mm/dd";
dt = convert.todatetime("2011/05/26", dtformat);

方法三:datetime.parseexact()

string datestring = "20110526";

datetime dt = datetime.parseexact(datestring, "yyyymmdd", system.globalization.cultureinfo.currentculture);

或者

datetime dt = datetime.parseexact(datestring, "yyyymmdd", system.globalization.cultureinfo.invariantculture);

附参考信息:

cultureinfo cultureinfo = cultureinfo.createspecificculture("en-us");
string format = "ddd mmm d hh:mm:ss zz00 yyyy";
string stringvalue = datetime.now.tostring(format, cultureinfo); // 得到日期字符串
datetime datetime = datetime.parseexact("wed aug 25 16:28:03 +0800 2010", format, cultureinfo); // 将字符串转换成日期

其他相关:

日期格式: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();//127756416859912816
dt.tofiletimeutc().tostring();//127756704859912816
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();//2005
dt.date.tostring();//2005-11-5 0:00:00
dt.dayofweek.tostring();//saturday
dt.dayofyear.tostring();//309
dt.hour.tostring();//13
dt.millisecond.tostring();//441
dt.minute.tostring();//30
dt.month.tostring();//11
dt.second.tostring();//28
dt.ticks.tostring();//632667942284412864
dt.timeofday.tostring();//13:30:28.4412864
dt.tostring();//2005-11-5 13:47:04
dt.addyears(1).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
dt.addmilliseconds(1.1).tostring();//2005-11-5 13:47:04
dt.addmonths(1).tostring();//2005-12-5 13:47:04
dt.addseconds(1.1).tostring();//2005-11-5 13:47:05
dt.addminutes(1.1).tostring();//2005-11-5 13:48:10
dt.addticks(1000).tostring();//2005-11-5 13:47:04
dt.compareto(dt).tostring();//0
dt.add(?).tostring();//问号为一个时间段
dt.equals("2005-11-6 16:11:04").tostring();//false
dt.equals(dt).tostring();//true
dt.gethashcode().tostring();//1474088234
dt.gettype().tostring();//system.datetime
dt.gettypecode().tostring();//datetime
dt.getdatetimeformats('s')[0].tostring();//2005-11-05t14:06:25
dt.getdatetimeformats('t')[0].tostring();//14:06
dt.getdatetimeformats('y')[0].tostring();//2005年11月
dt.getdatetimeformats('d')[0].tostring();//2005年11月5日
dt.getdatetimeformats('d')[1].tostring();//2005 11 05
dt.getdatetimeformats('d')[2].tostring();//星期六 2005 11 05
dt.getdatetimeformats('d')[3].tostring();//星期六 2005年11月5日
dt.getdatetimeformats('m')[0].tostring();//11月5日
dt.getdatetimeformats('f')[0].tostring();//2005年11月5日 14:06
dt.getdatetimeformats('g')[0].tostring();//2005-11-5 14:06
dt.getdatetimeformats('r')[0].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 + 1;

计算某年某月的天数

int days = datetime.daysinmonth(2007, 8);
days = 31;

给日期增加一天、减少一天

datetime dt =datetime.now;
dt.adddays(1); //增加一天
dt.adddays(-1);//减少一天

其它年份方法类似...

oracle sql里转换日期函数

to_date("2007-6-6",'yyyy-mm-dd");
to_date("2007/6/6",'yyyy/mm/dd");

ps:这里再为大家推荐几款日期与时间相关工具供大家参考使用:

在日期天数差计算器:

在线日期计算器/相差天数计算器:

在线日期/天数计算器:

在线阴历/阳历转换工具:

在线天数计算器(flash版):