下表显示可用于创建用户定义的日期/时间格式的字符,这些格式字符区分大小写。
| d | 将日显示为不带前导零的数字(如 1)。如果这是用户定义的数字格式中的唯一字符,请使用 %d。 | 
| dd | 将日显示为带前导零的数字(如 01)。 | 
| ddd | 将日显示为缩写形式(例如 Sun)。 | 
| dddd | 将日显示为全名(例如 Sunday)。 | 
| M | 将月份显示为不带前导零的数字(如一月表示为 1)。如果这是用户定义的数字格式中的唯一字符,请使用 %M。 | 
| MM | 将月份显示为带前导零的数字(例如 01/12/01)。 | 
| MMM | 将月份显示为缩写形式(例如 Jan)。 | 
| MMMM | 将月份显示为完整月份名(例如 January) | 
| gg | 显示时代/纪元字符串(例如 A.D.) | 
| h | 使用 12 小时制将小时显示为不带前导零的数字(例如 1:15:15 PM)。如果这是用户定义的数字格式中的唯一字符,请使用 %h。 | 
| hh | 使用 12 小时制将小时显示为带前导零的数字(例如 01:15:15 PM)。 | 
| H | 使用 24 小时制将小时显示为不带前导零的数字(例如 1:15:15)。如果这是用户定义的数字格式中的唯一字符,请使用 %H。 | 
| HH | 使用 24 小时制将小时显示为带前导零的数字(例如 01:15:15)。 | 
| m | 将分钟显示为不带前导零的数字(例如 12:1:15)。如果这是用户定义的数字格式中的唯一字符,请使用 %m。 | 
| mm | 将分钟显示为带前导零的数字(例如 12:01:15)。 | 
| s | 将秒显示为不带前导零的数字(例如 12:15:5)。如果这是用户定义的数字格式中的唯一字符,请使用 %s。 | 
| ss | 将秒显示为带前导零的数字(例如 12:15:05)。 | 
| F | 显示秒的小数部分。例如,ff 将精确显示到百分之一秒,而 ffff 将精确显示到万分之一秒。用户定义格式中最多可使用七个 f 符号。如果这是用户定义的数字格式中的唯一字符,请使用 %f。 | 
| T | 使用 12 小时制,并对中午之前的任一小时显示大写的 A,对中午到 11:59 P.M 之间的任一小时显示大写的P。如果这是用户定义的数字格式中的唯一字符,请使用 %t。 | 
| tt | 使用 12 小时制,并对中午之前任一小时显示大写的 AM;对中午到 11:59 P.M 之间的任一小时显示大写的PM。 | 
| y | 将年份 (0-9) 显示为不带前导零的数字。如果这是用户定义的数字格式中的唯一字符,请使用 %y。 | 
| yy | 以带前导零的两位数字格式显示年份(如果适用)。 | 
| yyy | 以四位数字格式显示年份。 | 
| yyyy | 以四位数字格式显示年份。 | 
| z | 显示不带前导零的时区偏移量(如 -8)。如果这是用户定义的数字格式中的唯一字符,请使用 %z。 | 
| zz | 显示带前导零的时区偏移量(例如 -08) | 
| zzz | 显示完整的时区偏移量(例如 -08:00) | 
实例 :
 实例
实例
1 //Console.WriteLine(DateTime.Now.ToString("M/d/yy")); 2 //Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy")); 3 //Console.WriteLine(DateTime.Now.ToString("d-MMM")); 4 //Console.WriteLine(DateTime.Now.ToString("d-MMMM-y")); 5 //Console.WriteLine(DateTime.Now.ToString("d MMMM")); 6 //Console.WriteLine(DateTime.Now.ToString("MMMM yy")); 7 //Console.WriteLine(DateTime.Now.ToString("hh:mm tt")); 8 //Console.WriteLine(DateTime.Now.ToString("hh:mm:ss t")); 9 //Console.WriteLine(DateTime.Now.ToString("HH:mm:ss")); 10 //Console.WriteLine(DateTime.Now.ToString("M/d/yyyy H:mm"));
显示结果如下图

不同的环境可能显示不同,原因是文化(CultureInfo)的差别 ,
例子:
 例子
例子
1 //Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 2 3 //Console.WriteLine(DateTime.Now.ToString("M/d/yy")); 4 //Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy")); 5 //Console.WriteLine(DateTime.Now.ToString("d-MMM")); 6 //Console.WriteLine(DateTime.Now.ToString("d-MMMM-y")); 7 //Console.WriteLine(DateTime.Now.ToString("d MMMM")); 8 //Console.WriteLine(DateTime.Now.ToString("MMMM yy")); 9 //Console.WriteLine(DateTime.Now.ToString("hh:mm tt")); 10 //Console.WriteLine(DateTime.Now.ToString("hh:mm:ss t")); 11 //Console.WriteLine(DateTime.Now.ToString("HH:mm:ss")); 12 //Console.WriteLine(DateTime.Now.ToString("M/d/yyyy H:mm"));
这段例子,在不同的环境上,显示结果都是一致的。
或者在web.config中加上
 <system.web>
      <globalization culture="en-US" uiCulture="en-US"></globalization>
</system.web>
延伸
例子:
 延伸例子
延伸例子 
1 class Program 2 { 3 static Random random = new Random(); 4 static void Main(string[] args) 5 { 6 7 if (Thread.CurrentThread.CurrentCulture.Name != "fr-FR") 8 { 9 Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR"); 10 Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR"); 11 } 12 else 13 { 14 Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 15 Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); 16 } 17 Proc(); 18 Thread writer = new Thread(Proc); 19 writer.Name = "New Thread!"; 20 writer.Start(); 21 } 22 static void DisplayThreadInfo() 23 { 24 Console.WriteLine("\n Current Thread Name:'{0}'", Thread.CurrentThread.Name); 25 Console.WriteLine("\n Current Thread Culture/UI Cultrue:{0}/{1}", Thread.CurrentThread.CurrentCulture, Thread.CurrentThread.CurrentUICulture); 26 } 27 static void DisplayData() 28 { 29 Console.WriteLine(" Some Current values:"); 30 for (int i = 0; i < 3; i++) 31 { 32 Console.WriteLine("{0:C2}", random.Next() * 10); 33 } 34 } 35 static void Proc() 36 { 37 DisplayThreadInfo(); 38 DisplayData(); 39 } 40 }
在新应用程序线程启动时,其当前区域性和当前的UI区域性定义的由当前系统区域性并不是由当前线程区域性。 下面的示例演示差异。 它将当前区域性和应用程序线程的当前用户界面区域性设置为法语(法国)区域性(fr FR)。 如果当前区域性已fr FR,该示例将其设置为英语(美国)区域性(en-us)。 它显示了三个随机数,货币值然后创建一个新线程,然后,显示三个随机数为货币值。 但,如该示例输出所示,新线程显示的货币值不反映法语(法国)区域性的格式设置约定不同,从主应用程序线程的输出。
    怀揣着一点点梦想的年轻人
相信技术和创新的力量
喜欢快速反应的工作节奏
相信技术和创新的力量
喜欢快速反应的工作节奏
 
                    
                     
                    
                 
                    
                 

 
        
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号