2009-06-29 22 views
5

Theo MSDN on DateTime.ToString ToString ("s") nên luôn luôn trở lại chuỗi theo định dạng của các định dạng kiểu Schema sắp xếp được XML, ví dụ như: 2008-10-01T17: 04: 32,0000000DateTime.ToString ("s") có trả về cùng định dạng không?

Trong Reflector tôi đến mô hình này bên DateTimeFormatInfo .

public string SortableDateTimePattern 
{ 
     get 
     { 
      return "yyyy'-'MM'-'dd'T'HH':'mm':'ss"; 
     } 
} 

DateTime.ToString ("s") có luôn trả về một chuỗi ở định dạng này không?
Bất kể văn hóa, khu vực, ...


Có nó
Mã để kiểm tra rằng

var dateTime = DateTime.Now; 
var originialString = dateTime.ToString("s"); 
string testString; 

foreach (var c in System.Globalization.CultureInfo.GetCultures(CultureTypes.AllCultures)) 
{ 
    Thread.CurrentThread.CurrentUICulture = c; 
    if (c.IsNeutralCulture == false) 
    { 
     Thread.CurrentThread.CurrentCulture = c; 
    } 

    testString = dateTime.ToString("s"); 
    Console.WriteLine("{0} ", testString); 
    if (originialString != testString) 
    { 
     throw new ApplicationException(string.Format("ToString(s) is returning something different for {0} " , c)); 
    } 
} 
+1

câu hỏi này chưa được đóng? – Irwin

Trả lời

14

Có nó. Như những người khác đã nói nó chỉ chứa giá trị số và chuỗi ký tự (ví dụ: 'T' và ':'), không có gì thay đổi theo cài đặt vùng hoặc văn hóa.

11

Đúng. Breaking that pattern down, nó chỉ là thuộc tính số, không có tham chiếu đến bất cứ điều gì như tháng hoặc ngày tên trong đó.

yyyy-4 ngày chữ số
MM-2 chữ số tháng, với hàng đầu zero
dd-2 chữ số ngày, với hàng đầu zero
T - T đen
HH - 2 chữ số giờ, có số 0 đứng đầu, định dạng 24 giờ
mm - 2 chữ số phút, với số 0 hàng đầu
ss - 2 chữ số thứ hai, với số không đứng đầu

Các vấn đề liên quan