C#에서 시간대 변환을 통한 날짜 형식 출력 예제
추천 자료: ASP.NET Core 인증 및 권한 부여
이 문서에서는 C#을 사용하여 시간대를 변환하고 특정 형식으로 날짜와 시간을 출력하는 방법을 단계별로 설명합니다. 이 예제는 Visual Studio C# Interactive에서 테스트할 수 있도록 작성되었습니다.
단계 1: 필요한 네임스페이스 포함
시간대 변환 및 날짜 형식 출력을 위해 필요한 네임스페이스를 포함합니다.
using System;
using System.Globalization;
단계 2: 데이터 모델 생성
예제에서 사용할 간단한 데이터 모델을 생성합니다.
public class Document
{
public DateTimeOffset? Created { get; set; }
public string TenantName { get; set; }
}
단계 3: 시간대 변환 및 날짜 형식 출력 함수 작성
주어진 Created
날짜를 특정 시간대로 변환하고 지정된 형식으로 출력하는 함수를 작성합니다.
public static string GetFormattedDate(Document doc)
{
DateTimeOffset createdDate = doc.Created ?? DateTimeOffset.MinValue;
string formattedDate = createdDate.ToString("MM/dd/yyyy hh:mm tt", CultureInfo.InvariantCulture);
if (doc.TenantName == "Milwaukee")
{
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
formattedDate = TimeZoneInfo.ConvertTime(createdDate, cstZone).ToString("MM/dd/yyyy hh:mm tt", CultureInfo.InvariantCulture);
}
else
{
TimeZoneInfo pstZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
formattedDate = TimeZoneInfo.ConvertTime(createdDate, pstZone).ToString("MM/dd/yyyy hh:mm tt", CultureInfo.InvariantCulture);
}
return formattedDate;
}
단계 4: 테스트 데이터 생성 및 함수 호출
작성한 함수를 테스트하기 위해 몇 가지 예제 데이터를 생성하고 함수를 호출합니다.
var documents = new[]
{
new Document { Created = DateTimeOffset.UtcNow, TenantName = "Milwaukee" },
new Document { Created = DateTimeOffset.UtcNow, TenantName = "OtherTenant" }
};
foreach (var doc in documents)
{
string formattedDate = GetFormattedDate(doc);
Console.WriteLine($"Tenant: {doc.TenantName}, Created: {formattedDate}");
}
전체 코드
이제 위의 모든 단계를 하나의 코드로 합쳐 봅니다.
using System;
using System.Globalization;
public class Document
{
public DateTimeOffset? Created { get; set; }
public string TenantName { get; set; }
}
public static class Program
{
public static string GetFormattedDate(Document doc)
{
DateTimeOffset createdDate = doc.Created ?? DateTimeOffset.MinValue;
string formattedDate = createdDate.ToString("MM/dd/yyyy hh:mm tt", CultureInfo.InvariantCulture);
if (doc.TenantName == "Milwaukee")
{
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
formattedDate = TimeZoneInfo.ConvertTime(createdDate, cstZone).ToString("MM/dd/yyyy hh:mm tt", CultureInfo.InvariantCulture);
}
else
{
TimeZoneInfo pstZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
formattedDate = TimeZoneInfo.ConvertTime(createdDate, pstZone).ToString("MM/dd/yyyy hh:mm tt", CultureInfo.InvariantCulture);
}
return formattedDate;
}
public static void Main()
{
var documents = new[]
{
new Document { Created = DateTimeOffset.UtcNow, TenantName = "Milwaukee" },
new Document { Created = DateTimeOffset.UtcNow, TenantName = "OtherTenant" }
};
foreach (var doc in documents)
{
string formattedDate = GetFormattedDate(doc);
Console.WriteLine($"Tenant: {doc.TenantName}, Created: {formattedDate}");
}
}
}
Program.Main();
이 코드를 Visual Studio C# Interactive에서 실행하면 두 가지 다른 시간대에서 생성된 날짜가 각기 다른 형식으로 출력됩니다. Milwaukee
테넌트는 중앙 표준시(CST) 시간대로 변환되고, 다른 테넌트는 태평양 표준시(PST) 시간대로 변환됩니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!