2010-08-01 49 views
8

Tôi gặp sự cố khi hiển thị thời gian ở định dạng sau: HH: mm: ss. Không có vấn đề gì tôi cố gắng, tôi không bao giờ nhận được nó ở định dạng đó.Hiển thị thời gian hiện tại theo định dạng sau: HH: mm: ss

Tôi muốn có thời gian trong văn hóa Hà Lan là "nl-NL".

Đây là một trong tôi (mặc dù tôi quên để giữ count) 1000 try:

CultureInfo ci = new CultureInfo("nl-NL"); 

string s = DateTime.Now.TimeOfDay.ToString("HH:mm:ss", ci); 

am i làm gì sai?

+0

TimeSpan có phương thức ToString() đáng sợ. Thay đổi trong .NET 4.0, không phải cho tốt hơn. Chỉ cần mất "TimeofDay" Darin đã nhận nó đúng tất nhiên –

Trả lời

6

Bạn cần phải sử dụng lớp TimeZoneInfo, dưới đây là cách để hiển thị thời gian hiện tại theo múi giờ Giờ chuẩn Đông trong HH: ss:: mm

var timeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); 
string s = TimeZoneInfo.ConvertTime(DateTime.Now, timeZone).ToString("HH:mm:ss"); 

để tìm tất cả các múi giờ có sẵn, bạn có thể sử dụng

TimeZoneInfo.GetSystemTimeZones(); 

Nhìn qua các giá trị trả về từ trên, Id cho múi giờ bạn cần (Amsterdam tôi giả sử) được gọi W. Giờ chuẩn Châu Âu:

var timeZone = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time"); 
string s = TimeZoneInfo.ConvertTime(DateTime.Now, timeZone).ToString("HH:mm:ss"); 
+0

Cảm ơn thebunringmonk Điều đó đã làm các trick.Không thể tin rằng bao lâu tôi đã tìm kiếm một giải pháp để sửa lỗi này! – Yustme

+0

@Yustme - Không có probs, vui mừng tôi có thể giúp ;-) Toàn cầu hóa không phải là cũng được bảo hiểm như không nhiều của chúng tôi làm điều đó, tôi đã đi qua một số bài viết MSDN tốt về nó một lúc trở lại nhưng dường như không thể tìm thấy liên kết ngay bây giờ, sẽ đăng một bản cập nhật nếu tôi tìm thấy nó một lần nữa. – theburningmonk

15
string s = DateTime.Now.ToString("HH:mm:ss"); 
+0

Hi, Tôi đã thử rằng một trong những quá, nó cho biết thêm 'am/pm' thứ đằng sau nó. – Yustme

+2

@Yustme: Đừng nhầm lẫn giữa 'DateTime.Now.TimeOfDay' và' DateTime.Now' – abatishchev

1

TimeOfDay là một TimeSpan, chỉ có một ToString() không có tham số. Sử dụng Darin's solution hoặc một mẫu từ MSDN documentation cho TimeSpan.ToString()

+0

Đây là liên kết: http://msdn.microsoft.com/en-us/library/system.datetime_properties.aspx – abatishchev

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