关于DateTime.ToString()格式化

用于备忘录:

主要内容来自MSDN:

C#内置了对于时间格式化的本地化。

下面的代码中不仅有关于输入模式的设置,还包含了时间的区域性设置。

DateTime.Now.ToString("关键字")

代码为官方提供:

下方有个人截图:图像的最前括号中的字母,即是格式化的关键字。

using System;
using System.Globalization;
using System.Threading;

public class Sample 
{
    
public static void M()
    {

    
string msgShortDate = "(d) Short date: . . . . . . . ";
    
string msgLongDate  = "(D) Long date:. . . . . . . . ";
    
string msgShortTime = "(t) Short time: . . . . . . . ";
    
string msgLongTime  = "(T) Long time:. . . . . . . . ";
    
string msgFullDateShortTime = 
                          
"(f) Full date/short time: . . ";
    
string msgFullDateLongTime =
                          
"(F) Full date/long time:. . . ";
    
string msgGeneralDateShortTime = 
                          
"(g) General date/short time:. ";
    
string msgGeneralDateLongTime = 
                          
"(G) General date/long time (default):\n" +
                          
"    . . . . . . . . . . . . . ";
    
string msgMonth   =   "(M) Month:. . . . . . . . . . ";
    
string msgRFC1123 =   "(R) RFC1123:. . . . . . . . . ";
    
string msgSortable =  "(s) Sortable: . . . . . . . . ";
    
string msgUniSortInvariant = 
                          
"(u) Universal sortable (invariant):\n" + 
                          
"    . . . . . . . . . . . . . ";
    
string msgUniFull =   "(U) Universal full date/time: ";
    
string msgYear =      "(Y) Year: . . . . . . . . . . ";
    
string msgRoundtripLocal        = "(o) Roundtrip (local):. . . . ";
    
string msgRoundtripUTC          = "(o) Roundtrip (UTC):. . . . . ";
    
string msgRoundtripUnspecified  = "(o) Roundtrip (Unspecified):. ";


    
string msg1 = "Use ToString(String) and the current thread culture.\n";
    
string msg2 = "Use ToString(String, IFormatProvider) and a specified culture.\n";
    
string msgCulture  = "Culture:";
    
string msgThisDate = "This date and time: {0}\n";

    DateTime thisDate  
= DateTime.Now;
    DateTime  utcDate  
= thisDate.ToUniversalTime();
    DateTime unspecifiedDate 
= new DateTime(200032013230, DateTimeKind.Unspecified);
    CultureInfo ci;

// Format the current date and time in various ways.
    Console.Clear();
    Console.WriteLine(
"Standard DateTime Format Specifiers:\n");
    Console.WriteLine(msgThisDate, thisDate);
    Console.WriteLine(msg1);

// Display the thread current culture, which is used to format the values.
    ci = Thread.CurrentThread.CurrentCulture;
    Console.WriteLine(
"{0,-30}{1}\n", msgCulture, ci.DisplayName);

    Console.WriteLine(msgShortDate            
+         thisDate.ToString("d"));
    Console.WriteLine(msgLongDate             
+         thisDate.ToString("D"));
    Console.WriteLine(msgShortTime            
+         thisDate.ToString("t"));
    Console.WriteLine(msgLongTime             
+         thisDate.ToString("T"));
    Console.WriteLine(msgFullDateShortTime    
+         thisDate.ToString("f"));
    Console.WriteLine(msgFullDateLongTime     
+         thisDate.ToString("F"));
    Console.WriteLine(msgGeneralDateShortTime 
+         thisDate.ToString("g"));
    Console.WriteLine(msgGeneralDateLongTime  
+         thisDate.ToString("G"));
    Console.WriteLine(msgMonth                
+         thisDate.ToString("M"));
    Console.WriteLine(msgRFC1123              
+          utcDate.ToString("R"));
    Console.WriteLine(msgSortable             
+         thisDate.ToString("s"));
    Console.WriteLine(msgUniSortInvariant     
+          utcDate.ToString("u"));
    Console.WriteLine(msgUniFull              
+         thisDate.ToString("U"));
    Console.WriteLine(msgYear                 
+         thisDate.ToString("Y"));
    Console.WriteLine(msgRoundtripLocal       
+         thisDate.ToString("o"));
    Console.WriteLine(msgRoundtripUTC         
+          utcDate.ToString("o"));
    Console.WriteLine(msgRoundtripUnspecified 
+  unspecifiedDate.ToString("o"));

    Console.WriteLine();

// Display the same values using a CultureInfo object. The CultureInfo class 
// implements IFormatProvider.
    Console.WriteLine(msg2);

// Display the culture used to format the values. 
    ci = new CultureInfo("de-DE");
    Console.WriteLine(
"{0,-30}{1}\n", msgCulture, ci.DisplayName);

    Console.WriteLine(msgShortDate            
+         thisDate.ToString("d", ci));
    Console.WriteLine(msgLongDate             
+         thisDate.ToString("D", ci));
    Console.WriteLine(msgShortTime            
+         thisDate.ToString("t", ci));
    Console.WriteLine(msgLongTime             
+         thisDate.ToString("T", ci));
    Console.WriteLine(msgFullDateShortTime    
+         thisDate.ToString("f", ci));
    Console.WriteLine(msgFullDateLongTime     
+         thisDate.ToString("F", ci));
    Console.WriteLine(msgGeneralDateShortTime 
+         thisDate.ToString("g", ci));
    Console.WriteLine(msgGeneralDateLongTime  
+         thisDate.ToString("G", ci));
    Console.WriteLine(msgMonth                
+         thisDate.ToString("M", ci));
    Console.WriteLine(msgRFC1123              
+         utcDate.ToString("R", ci));
    Console.WriteLine(msgSortable             
+         thisDate.ToString("s", ci));
    Console.WriteLine(msgUniSortInvariant     
+         utcDate.ToString("u", ci));
    Console.WriteLine(msgUniFull              
+         thisDate.ToString("U", ci));
    Console.WriteLine(msgYear                 
+         thisDate.ToString("Y", ci));
    Console.WriteLine(msgRoundtripLocal       
+         thisDate.ToString("o", ci));
    Console.WriteLine(msgRoundtripUTC         
+          utcDate.ToString("o", ci));
    Console.WriteLine(msgRoundtripUnspecified 
+  unspecifiedDate.ToString("o", ci));

    Console.WriteLine();
    }
}


 


 

posted @ 2011-03-09 11:01  程序员老李  阅读(853)  评论(0编辑  收藏  举报