TimeSpan
사용자 정의 형식을 사용하여 객체를 문자열로 형식화하는 권장 방법은 무엇입니까 ?
답변
참고 :이 답변은 .Net 4.0 이상입니다. .Net 3.5 이하에서 TimeSpan을 포맷하려면 JohannesH의 답변을 참조하십시오 .
사용자 지정 TimeSpan 형식 문자열은 .Net 4.0에서 도입되었습니다. MSDN Custom TimeSpan Format Strings 페이지 에서 사용 가능한 형식 지정자에 대한 전체 참조를 찾을 수 있습니다 .
다음은 타임스 팬 형식 문자열의 예입니다.
string.Format("{0:hh\\:mm\\:ss}", myTimeSpan); //example output 15:36:15
( UPDATE ) 다음은 C # 6 문자열 보간을 사용하는 예입니다.
$"{myTimeSpan:hh\\:mm\\:ss}"; //example output 15:36:15
“:”문자를 “\”로 이스케이프해야합니다 (자체 문자열을 사용하지 않는 한 이스케이프해야합니다).
MSDN Custom TimeSpan Format Strings 페이지 에서 발췌 한 “:”및 “. 형식 문자열의 문자 :
사용자 정의 TimeSpan 형식 지정자에는 일을 시간, 시간, 분 또는 초를 소수 초로 분리하는 기호와 같은 자리 표시 자 구분 기호가 포함되지 않습니다. 대신 이러한 기호는 사용자 정의 형식 문자열에 문자열 리터럴로 포함되어야합니다. 예를 들어 “dd.hh : mm”은 일과 시간 사이의 구분 기호로 마침표 (.)를 정의하고 시간과 분 사이의 구분 기호로 콜론 (:)을 정의합니다.
답변
.NET 3.5 이하의 경우 다음을 사용할 수 있습니다.
string.Format ("{0:00}:{1:00}:{2:00}",
(int)myTimeSpan.TotalHours,
myTimeSpan.Minutes,
myTimeSpan.Seconds);
바이트에 대한 Jon Skeet 답변 에서 가져온 코드
.NET 4.0 이상의 경우 DoctaJonez answer를 참조하십시오 .
답변
한 가지 방법은 DateTime
객체 를 만들어서 서식을 지정하는 것입니다.
new DateTime(myTimeSpan.Ticks).ToString(myCustomFormat)
// or using String.Format:
String.Format("{0:HHmmss}", new DateTime(myTimeSpan.Ticks))
이것이 내가 아는 방법입니다. 누군가가 더 나은 방법을 제안 할 수 있기를 바랍니다.
답변
단순한. TimeSpan.ToString
c, g 또는 G와 함께 사용 하십시오. MSDN의 추가 정보
답변
나는 갈 것이다
myTimeSpan.ToString("hh\\:mm\\:ss");
답변
Dim duration As New TimeSpan(1, 12, 23, 62)
DEBUG.WriteLine("Time of Travel: " + duration.ToString("dd\.hh\:mm\:ss"))
프레임 워크 4에서 작동합니다.
http://msdn.microsoft.com/en-us/library/ee372287.aspx
답변
개인적으로, 나는이 접근법을 좋아한다 :
TimeSpan ts = ...;
string.Format("{0:%d}d {0:%h}h {0:%m}m {0:%s}s", ts);
아무 문제없이 원하는대로 사용자 정의 할 수 있습니다.
string.Format("{0:%d}days {0:%h}hours {0:%m}min {0:%s}sec", ts);
string.Format("{0:%d}d {0:%h}h {0:%m}' {0:%s}''", ts);