이 장에서는 Perl 언어에서 시간과 날짜를 처리하는 방법을 소개합니다.
Perl에는 시간을 처리하는 몇 가지 함수가 있습니다:
1. time() 함수: 1970년 1월 1일 이후 누적된 초 수를 반환합니다.
2. localtime() 함수: 현지 시간대 시간을 가져옵니다.
3. gmtime() 함수: 그리니치 표준시 가져오기
다음으로 인수 없이 현재 시간과 날짜를 반환하는 localtime() 함수를 살펴보겠습니다.
다음 9개의 기호는 다양한 시간 및 날짜 매개변수를 나타냅니다.
초, #초, 0~61분, #분, 0~59시간, #시간, 0~24m일, #일, 1~31월, #개월, 0~11년, #년, 1900년부터 시작일, #요일 , 0 -6,0은 일요일 yday를 의미합니다. # 올해의 날짜, 0-364,365isdst # 일광 절약 시간이 적용되면 참입니다.
예제 데모는 다음과 같습니다:
위 예제의 실행 출력은 다음과 같습니다.
6월 12일 일요일
localtime()을 직접 호출하면 시스템의 현재 시간대 설정 시간을 반환합니다. 예는 다음과 같습니다.
위 예제의 실행 출력은 다음과 같습니다.
시간 및 날짜는 다음과 같습니다. 2016년 6월 12일 일요일 11:27:31
gmtime() 함수는 localtime()과 유사하지만 표준 그리니치 시간을 반환합니다.
위 예제의 실행 출력은 다음과 같습니다.
현지 시간 및 날짜: Sun Jun 12 11:32:14 2016GMT 시간 및 날짜: Sun Jun 12 03:32:14 2016
중국의 시간은 그리니치 표준시와 8시간 시차가 나는 것을 예를 통해 알 수 있습니다.
localtime() 함수의 9개 시간 요소를 사용하여 공식화해야 하는 형식 시간을 출력할 수 있습니다. 형식화된 출력은 printf() 함수를 사용합니다.
위 예제의 실행 출력은 다음과 같습니다.
포맷 시간: HH:MM:SS11:35:23
1970년 1월 1일 이후의 초 수를 반환하는 time() 함수를 사용하여 에포크 시간을 얻을 수 있습니다. 예는 다음과 같습니다:
위 예제의 실행 출력은 다음과 같습니다.
1970년 1월 1일 이후 누적된 초 수는 1465702883입니다.
원하는 시간 형식을 출력할 수 있습니다.
위 예제의 실행 출력은 다음과 같습니다.
현재 시간 및 날짜: 2017-3-15 12:47:54 어제 시간 및 날짜: 2017-3-14 12:47:54
strftime() 함수는 시간을 우리가 원하는 형식으로 지정할 수 있습니다.
다음 표에는 일부 형식 지정 기호가 나열되어 있습니다. * 기호는 현지 시간을 사용함을 나타냅니다.
상징 | 설명하다 | 예 |
---|---|---|
%a | 요일 약어(Sun..Sat) * | Thu |
%A | 요일의 전체 이름(일요일..토요일) * | Thursday |
%b | 월 약어(Jan..Dec) * | Aug |
%B | 해당 월의 전체 이름(January..December) * | August |
%c | 날짜 및 시간* | Thu Aug 23 14:55:02 2001 |
%C | 연도는 100으로 나누어 반올림됩니다( 00-99 ). | 20 |
%d | 해당 월의 일자( 01-31 ) | 23 |
%D | 날짜, MM/DD/YY %m/%d/%y 와 같습니다. | 08/23/01 |
%e | 월의 날짜, 공백을 사용하여 한 자리 숫자( 1-31 ) 채우기 | 23 |
%F | YYYY-MM-DD 의 약어는 %Y-%m-%d 와 유사합니다. | 2001-08-23 |
%g | 연도의 마지막 두 자리 ( 00-99 ) | 01 |
%g | 년도 | 2001 |
%h | 월 약어* ( %b 옵션과 동일) | Aug |
%H | 24시간 형식( 00-23 ) | 14 |
%I | 12시간 형식( 01-12 ) | 02 |
%j | 올해의 일 ( 001-366 ) | 235 |
%m | 월( 01-12 ) | 08 |
%M | 분( 00-59 ) | 55 |
%n | 새 줄( 'n' ) |
|
%p | 오전 또는 오후 표시 | PM |
%r | 시간(hh:mm:ss AM 또는 PM), 12시간* | 02:55:02 pm |
%R | 24시간 HH:MM 시간 형식, %H:%M 과 동일 | 14:55 |
%S | 초 수( 00-61 ) | 02 |
%t | 가로 탭( 't' ) |
|
%T | 시간(24시간 형식)(hh:mm:ss), %H:%M:%S 와 동일 | 14:55 |
%u | ISO 8601 요일 형식, 월요일은 1 ( 1-7 )입니다. | 4 |
%U | 해당 연도의 주 번호, 일요일이 첫 번째 날입니다( 00-53 ). | 33 |
%V | ISO 8601 주( 00-53 ) | 34 |
%w | 요일(0은 일요일을 나타냄)( 0-6 ) | 4 |
%W | 해당 연도의 주 번호, 월요일이 첫 번째 날입니다( 00-53 ). | 34 |
%x | 표시 날짜 형식(mm/dd/yy) * | 08/23/01 |
%X | 표시 시간 형식* | 14:55:02 |
%y | 연도, 두 자리 ( 00-99 ) | 01 |
%Y | 년도 | 2001 |
%z | ISO 8601과 UTC 사이의 시간대 오프셋(1분=1, 1시간=100) | +100 |
%Z | "중국 표준시" 등 현재 시간대의 이름 * | CDT |
%% | % 기호 | % |
위 예제의 실행 출력은 다음과 같습니다.
시간 및 날짜 - 2016-06-12 12:15:13 시간 및 날짜 - 2016-06-12 04:15:13