본문 바로가기

코딩 이야기/델파이 코딩

델파이 날짜 포맷 종류 및 예시

 

 

델파이 날짜 포맷 종류 및 예시

안녕하세요! 델파이에서 날짜를 다양한 형식으로 포맷하는 방법을 알려드릴게요. 날짜 포맷팅을 위해 주로 사용되는 PAS 유닛과 각 포맷 종류에 대한 예시를 함께 설명해 드리겠습니다.

사용해야 할 PAS 유닛

델파이에서 날짜 및 시간을 포맷하려면 주로 SysUtils 유닛을 사용합니다. 이 유닛에는 FormatDateTime과 같은 유용한 함수들이 포함되어 있습니다.

uses
  SysUtils;

날짜 포맷 종류 및 예시 (FormatDateTime 함수 사용)

델파이의 FormatDateTime 함수는 첫 번째 매개변수로 포맷 지정 문자열을 받고, 두 번째 매개변수로 포맷할 날짜/시간 값을 받습니다. 포맷 지정 문자열에 따라 다양한 형식으로 날짜를 출력할 수 있습니다.

가장 일반적인 날짜 포맷 지정 문자와 그 예시는 다음과 같습니다. 현재 날짜를 2023년 10월 26일 목요일 오후 3시 30분 15초라고 가정하고 예시를 보여드리겠습니다.

FormatDateTime 포맷 지정자 예시
포맷 지정 문자열 설명 예시 코드 (FormatDateTime) 결과 예시
yyyy 4자리 연도 FormatDateTime('yyyy', Now) 2023
yy 2자리 연도 FormatDateTime('yy', Now) 23
m 월 (선행 0 없음) FormatDateTime('m', Now) 10
mm 월 (선행 0 포함) FormatDateTime('mm', Now) 10
mmm 축약된 월 이름 (시스템 설정 따름) FormatDateTime('mmm', Now) 10월 (또는 Oct)
mmmm 전체 월 이름 (시스템 설정 따름) FormatDateTime('mmmm', Now) 10월 (또는 October)
d 일 (선행 0 없음) FormatDateTime('d', Now) 26
dd 일 (선행 0 포함) FormatDateTime('dd', Now) 26
ddd 축약된 요일 이름 (시스템 설정 따름) FormatDateTime('ddd', Now) (또는 Thu)
dddd 전체 요일 이름 (시스템 설정 따름) FormatDateTime('dddd', Now) 목요일 (또는 Thursday)
h 시간 (12시간 형식, 선행 0 없음) FormatDateTime('h', Now) 3
hh 시간 (12시간 형식, 선행 0 포함) FormatDateTime('hh', Now) 03
n 분 (선행 0 없음) FormatDateTime('n', Now) 30
nn 분 (선행 0 포함) FormatDateTime('nn', Now) 30
s 초 (선행 0 없음) FormatDateTime('s', Now) 15
ss 초 (선행 0 포함) FormatDateTime('ss', Now) 15
z 밀리초 (선행 0 없음) FormatDateTime('z', Now) ... (예: 123)
zzz 밀리초 (선행 0 포함, 3자리) FormatDateTime('zzz', Now) ... (예: 123)
t 시간 구분 (오전/오후, 시스템 설정 따름) FormatDateTime('t', Now) 오후 (또는 PM)
tt 시간 구분 (오전/오후, 시스템 설정 따름) FormatDateTime('tt', Now) 오후 (또는 PM)
/ 날짜 구분 기호 (시스템 설정 따름) FormatDateTime('yyyy/mm/dd', Now) 2023/10/26
: 시간 구분 기호 (시스템 설정 따름) FormatDateTime('hh:nn:ss', Now) 03:30:15
"로 묶인 문자열" 포맷에 그대로 포함될 리터럴 문자열 FormatDateTime('"현재 시간: " hh:nn:ss', Now) 현재 시간: 03:30:15

자주 사용되는 포맷 예시:

  • YYYY-MM-DD 형식:
    Result := FormatDateTime('yyyy-mm-dd', Now); // 예: 2023-10-26
    
  • YYYY/MM/DD HH:NN:SS 형식:
    Result := FormatDateTime('yyyy/mm/dd hh:nn:ss', Now); // 예: 2023/10/26 03:30:15
    
  • 로케일(시스템 설정)에 따른 짧은 날짜 형식:
    Result := FormatDateTime(ShortDateFormat, Now); // 예: 2023-10-26 또는 2023. 10. 26.
    
  • 로케일(시스템 설정)에 따른 긴 날짜 형식:
    Result := FormatDateTime(LongDateFormat, Now); // 예: 2023 10 26 목요일
    
  • 로케일(시스템 설정)에 따른 짧은 시간 형식:
    Result := FormatDateTime(ShortTimeFormat, Now); // 예: 오후 3:30 또는 15:30
    
  • 로케일(시스템 설정)에 따른 긴 시간 형식:
    Result := FormatDateTime(LongTimeFormat, Now); // 예: 오후 3 30 15 또는 15 30 15
    

참고: ShortDateFormat, LongDateFormat, ShortTimeFormat, LongTimeFormat 등은 SysUtils에 정의된 전역 변수로, 시스템의 국가 및 언어 설정에 따라 값이 자동으로 결정됩니다.