2015-02-07 1 views
2

가정하자 우리와 같은 특정 날짜 시간 변수 뭔가가 있습니다달력에 해당하는 DateTime 변수를 찾을 수있는 방법이 있습니까?

DateTime BirthDate{get;set;} 

다른 사용자가/고객이 선호하는 일정에 따라이 변수를 설정 (우리의 경우 Georgian, HijriPersian Calendar에서) 우리는 모든 날짜를 저장하려면 Gerogian 프리젠 테이션을 사용하여 Microsoft SQL Server에 저장할 수 있습니다. 주어진 날짜의 캘린더를 찾아서 원래 캘린더에서 Georgian Canlendar으로 변환 할 수있는 방법이 있을까요?

답변

2

아니요, DateTime은 달력 정보를 보유하지 않습니다 ... 은 항상 그레고리력에입니다. 다른 달력 시스템을 사용하여 DateTime을 구성하면이를 그레고리력으로 변환하고 Calendar 메소드를 사용하여 원래 값으로 되돌려 야합니다. 따라서 기본적으로 달력 시스템을 별도로 저장해야합니다. 클라이언트 구성의 일부일 수도 있습니다. 예를 들어

: 한편

Calendar hebrewCalendar = new HebrewCalendar(); 
DateTime today = new DateTime(5775, 5, 18, hebrewCalendar); 
Console.WriteLine(today.Year); // 2015 
Console.WriteLine(hebrewCalendar.GetYear(today)); // 5775 

, 당신이 내 Noda Time 프로젝트를 사용한다면, 해당 유형 이 달력 시스템 정보를 유지 거기에서 -의 차이에 대한 명확한 것으로 일반적으로뿐만 아니라, (이 약간 간단로 2.0을 사용!) 등 순간, 현지 날짜, 현지 시간은 물론 나는 마음 당신은 위의

노다 시간에 해당

바이어스 :)있어

using System; 
using NodaTime; 

class Test 
{ 
    static void Main() 
    { 
     var hebrewCalendar = CalendarSystem.HebrewCivil; 
     var today = new LocalDate(5775, 5, 18, hebrewCalendar); 
     Console.WriteLine(today.Year); // 5775 
     Console.WriteLine(today.WithCalendar(CalendarSystem.Gregorian).Year); // 2015 
    } 
} 
+0

자세한 설명을 주셔서 감사합니다. 나는 이것을 알지 못했다. (+1) – Christos

+0

좋습니다! 그럼 NodaTime에 대해 더 읽어야합니다 :) – Beatles1692

관련 문제