C#에서는 TimeSpan 값을 hh:mm:ss 형식으로 손쉽게 출력할 수 있습니다. 이 글에서는 사용자 지정 형식 지정자를 활용해 TimeSpan 객체를 원하는 형태로 포맷하는 방법을 예제와 함께 살펴보겠습니다.
1. TimeSpan 객체 생성
먼저 시, 분, 초를 인수로 전달하여 TimeSpan 객체를 생성합니다. 아래 코드는 9시간 15분 30초를 나타냅니다.
TimeSpan ts = new TimeSpan(9, 15, 30);
2. 사용자 지정 형식 지정자
TimeSpan을 hh:mm:ss 형식으로 지정하려면 다음과 같은 형식 문자열을 사용합니다.
{0:hh\:mm\:ss}여기서 중요한 점은 TimeSpan의 사용자 지정 형식 문자열에서 콜론(:)이 리터럴 문자로 자동 인식되지 않기 때문에, 반드시 역슬래시(\\)로 이스케이프 처리해야 한다는 것입니다. 이를 생략하면 런타임에 FormatException 오류가 발생할 수 있습니다.
3. 전체 예제 코드
아래는 위 내용을 모두 적용한 완성된 예제입니다.
using System;
using System.Linq;
public class Demo {
public static void Main() {
// 9시간 15분 30초를 나타내는 TimeSpan 생성
TimeSpan ts = new TimeSpan(9, 15, 30);
// hh:mm:ss 형식으로 출력
Console.WriteLine("{0:hh\\:mm\\:ss}", ts);
}
}실행 결과
09:15:30
참고: ToString() 메서드 활용
Console.WriteLine 대신 ToString() 메서드로도 동일한 결과를 얻을 수 있습니다.
string result = ts.ToString(@"hh\\:mm\\:ss"); Console.WriteLine(result); // 09:15:30
문자열 앞에 @ 기호(verbatim 문자열)를 붙이면 이스케이프 처리가 더 직관적으로 보입니다. 상황에 맞게 두 가지 방식을 선택하여 사용하면 됩니다.