2013-08-28 117 views
13

tôi sử dụng mã này để chuyển đổi Timespan-String (cho ví dụ: 14:53):Cách chuyển đổi TimeSpan thành 24 giờ và phút chuỗi?

myTimeSpan.ToString("hh:mm"); 

nhưng lỗi này xảy ra:

chuỗi đầu vào không phải là trong một định dạng đúng

Cách thích hợp để thực hiện việc này là gì?

+0

câu hỏi tương tự đã trả lời ở đây: http://stackoverflow.com/questions/463642/what-is-the- tốt nhất-cách-to-chuyển đổi-giây-thành-hourminutessecondsmilliseconds –

+2

@AbhishekShetty; có, tuy nhiên, các câu trả lời là trước .NET 4 (không có 'TimeSpan.ToString'). –

Trả lời

28
myTimeSpan.ToString(@"hh\:mm") 

Custom TimeSpan Format Strings

Định dạng specifiers tùy chỉnh TimeSpan không bao gồm giữ chỗ ký tự phân cách, chẳng hạn như những biểu tượng mà ngày riêng biệt từ giờ, giờ, kể từ phút hoặc giây từ giây phân đoạn . Thay vào đó, các ký hiệu này phải được bao gồm trong chuỗi định dạng tùy chỉnh dưới dạng chuỗi chữ. Ví dụ: "dd.hh \: mm" xác định dấu chấm (.) Làm dấu phân cách giữa ngày và giờ và dấu hai chấm (:) làm dấu tách giữa giờ và phút.

+2

Hãy lưu ý rằng điều này không xử lý thời gian lớn hơn 24 giờ (nó mất phần ngày). –

+1

@MatthewWatson: Đúng. Tôi cho rằng tối đa OP là 24 giờ vì tiêu đề và những gì anh ta đã thử. Anh ta có thể bao gồm các ngày: 'myTimeSpan.ToString (@" d \ .hh \: mm ")' –

0

Thử tính năng này sẽ hoạt động 100% !!

myTimeSpan.ToString(@"dd\.hh\:mm");. 
6

Bạn cần sử dụng @"hh\:mm\" cho TimeSpan. định dạng khoảng thời gian không phải là chính xác giống như DateTime

myTimeSpan.ToString(@"hh\:mm"); 

Check-out Msdn để biết thêm

5
var result = string.Format("{0:D2}:{1:D2}", myTimeSpan.Hours, myTimeSpan.Minutes); 
Các vấn đề liên quan