一:在C#中DateTime是一个包含日期,时间的类型,此类型通过Tostring()转化为字符串时,可根据传入的Tostring()的参数转化为多种字符串格式。
二:分类
1.DateTime调用Tostring()传入的参数可分为制式和自定义两种:
(1)制式:系统自带的,传入特定的单个字符就可以转换为系统已设定好的格式。
(2)自定义:自由组合日期时间代码(y,M,d,h,m,s,f)来展示丰富的日期格式。
2.制式类型格式来源
在Windows系统中的区域和语言(位置:控制面板→区域和语言)选项中可设置日期和时间的格式。
可设置的类型有:短日期,长日期,短时间,长时间等。调用ToString()进行转化时,许多转换模式都是通过上面4个分类进行组合的。下面是单个字符对照打印出来的。
string dtNow = DateTime.Now.ToString(); DateTime dateTime = DateTime.Now; Console.WriteLine("< >不带参数的日期格式: {0} ", dtNow); Console.WriteLine("<d>短日期格式: {0} ", dateTime.ToString("d")); Console.WriteLine("<D>长日期格式: {0} ", dateTime.ToString("D")); Console.WriteLine("<f>长日期短时间格式: {0} ", dateTime.ToString("f")); Console.WriteLine("<F>长日期长时间格式: {0} ", dateTime.ToString("F")); Console.WriteLine("<g>短日期短时间格式: {0} ", dateTime.ToString("g")); Console.WriteLine("<G>短日期长时间格式: {0} ", dateTime.ToString("G")); Console.WriteLine("<m>月日格式: {0} ", dateTime.ToString("m")); Console.WriteLine("<M>月日格式: {0} ", dateTime.ToString("M")); Console.WriteLine("<r>RFC1123标准格式: {0} ", dateTime.ToString("r")); Console.WriteLine("<R>RFC日期格式: {0} ", dateTime.ToString("R")); Console.WriteLine("<t>短时间格式: {0} ", dateTime.ToString("t")); Console.WriteLine("<T>长时间格式: {0} ", dateTime.ToString("T")); Console.WriteLine("<s>日期格式: {0} ", dateTime.ToString("")); Console.WriteLine("<u>通用日期格式: {0} ", dateTime.ToString("u")); Console.WriteLine("<U>本初子午线长日期长时间格式: {0} ", dateTime.ToString("U")); Console.WriteLine("<y>年月格式: {0} ", dateTime.ToString("y")); Console.WriteLine("<Y>年月格式: {0} ", dateTime.ToString("Y")); Console.ReadKey();
运行结果为:
下面是自定义格式类型:
//自定义格式类型: //字符符合:y(年),M(月),d(日),h(时),m(分),s(秒),f(毫秒),可以看出只有月是大写的 M ,其他都是小写。 //yy 年份后两位 //yyyy 4位年份 //MM 两位月份 //mm 分钟数 //dd 两位日数 //ddd 周几 //dddd 星期几 //hh 12小时的制的小时数 //HH 24小时的小时数 //ss 两位秒数 //ff 毫秒前两位 //fff 毫秒前三位 //ffff 毫秒前四位 // //例: DateTime dt = DateTime.Now; Console.WriteLine("<无参数格式> {0}", dt.ToString()); Console.WriteLine("<yy/MM/dd hh:mm:ss ff> {0}", dt.ToString("yy/MM/dd hh:mm:ss ff")); Console.WriteLine("<yyyy-MM-dd hh:mm:ss fff> {0}", dt.ToString("yyyy-MM-dd hh:mm:ss fff")); Console.WriteLine("<yy年MM月dd日 hh:mm:ss ffff> {0}", dt.ToString("yy年MM月dd日 hh:mm:ss ffff")); Console.WriteLine("<yyyy年MM月dd日 dddd 周 ddd hh:mm:ss ff> {0}", dt.ToString("yyyy年MM月dd日 dddd 周 ddd hh:mm:ss ff")); Console.ReadKey();
运行结果为: