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

C# string格式的日期时间字符串转为DateTime类型的方法

程序员文章站 2023-11-09 18:08:46
方法一:convert.todatetime(string) string格式有要求,必须是yyyy-mm-dd hh:mm:ss 方法二:convert.todate...

方法一: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");