Perl에는 스크립트에서 현재 날짜와 시간을 찾는 편리한 내장 기능이 있습니다. 그러나 시간 찾기에 대해 이야기할 때는 스크립트를 실행하는 컴퓨터에 현재 설정된 시간에 대해 이야기합니다. 예를 들어, 로컬 컴퓨터에서 Perl 스크립트를 실행하는 경우 localtime은 사용자가 설정한 현재 시간을 반환하며, 현재 시간대로 설정할 수도 있습니다.
웹 서버에서 동일한 스크립트를 실행할 때 데스크톱 시스템의 현지 시간이 현지 시간과 다를 수 있습니다. 서버의 시간대가 다르거나 설정이 잘못되었을 수 있습니다. 각 기계는 현지 시간에 대해 완전히 다른 생각을 가질 수 있으며 예상한 것과 일치하도록 스크립트 내에서 또는 서버 자체에서 약간의 조정이 필요할 수 있습니다.
localtime 함수는 현재 시간 데이터가 포함된 목록을 반환하며, 그 중 일부는 조정이 필요합니다. 아래 프로그램을 실행하면 목록의 각 요소가 공백으로 구분되어 한 줄에 인쇄되는 것을 볼 수 있습니다.
#!/usr/local/bin/perl @timeData = localtime(time); print join(' ', @timeData);
숫자는 상당히 다를 수 있지만 비슷한 것을 볼 수 있습니다.
20 36 8 27 11 105 2 360 0
현재 시간의 다음 요소는 순서대로입니다.
- 1분이 지났습니다
- 분이 지났습니다
- 자정
- 날짜
- 연초부터 몇 달
- 숫자 1900년 이후의 연수
- 한 주의 시작(일요일) 이후의 일수
- 연도의 시작 이후의 일수
- 일광 절약 시간이 적용되는지 여부
Perl 현지 시간을 읽을 수 있게 만듭니다
localtime에서 반환됨 배열의 일부 요소가 약간 어색하게 읽혀집니다. 누가 올해를 1900년 이후의 해로 생각하겠습니까? 날짜와 시간을 더 명확하게 하기 위해 예를 살펴보겠습니다.
이 프로그램을 실행하면 다음과 같이 날짜와 시간이 더 읽기 쉬운 버전으로 표시됩니다.
9:14:42, Wed Dec 28, 2018
그러면 더 읽기 쉬운 버전을 만들기 위해 무엇을 했나요? 먼저, 다음과 같은 이름이 포함된 배열 두 개를 준비했습니다. 달과 요일.
@months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); @weekDays = qw(Sun Mon Tue Wed Thu Fri Sat Sun);
localtime 함수는 0-11과 0-6 사이의 값을 가진 이러한 요소를 반환하므로 배열에 가장 적합한 후보입니다. localtime에서 반환된 값은 배열의 올바른 요소에 액세스하기 위한 숫자 주소로 사용될 수 있습니다.
$months[$month] $weekDays[$dayOfWeek]
다음 단계는 localtime 함수에서 모든 값을 가져오는 것입니다. 이 예에서는 Perl 단축키를 사용하여 localtime 배열의 각 요소를 자체 변수에 자동으로 넣습니다. 우리는 어떤 요소가 어떤 요소인지 더 쉽게 기억할 수 있도록 이름을 선택합니다.
($second, $minute, $hour, $dayOfMonth, $month, $yearOffset, $dayOfWeek, $dayOfYear, $daylightSavings) = localtime();
연도 값도 조정해야 합니다. localtime은 1900년 이후의 연도 수를 반환하므로 현재 연도를 찾으려면 주어진 값에 1900을 더해야 합니다.
$year = 1900 + $yearOffset;
Perl에서 현재 표준시를 표현하는 방법
가능한 모든 시간대 혼동을 피하고 자신만의 시차를 제어하고 싶다고 가정해 보세요. 현재 시간을 현지 시간으로 가져오면 항상 시스템의 시간대 설정에 따른 값이 반환됩니다. 미국에 있는 서버는 시간을 반환하는 반면, 호주에 있는 서버는 시간대 때문에 하루 종일 거의 완전히 다른 시간을 반환합니다. 차이점.
Perl에는 현지 시간과 똑같이 작동하는 편리한 두 번째 시간 표시 기능도 있지만 기계의 시간대에 고정된 시간을 반환하는 대신 협정 세계시(UTC, 그리니치 표준시 또는 GMT라고도 함)를 반환합니다. 간단히 말해서 함수는 gmtime
#!/usr/local/bin/perl @timeData = gmtime(time); print join(' ', @timeData);
이라고 합니다. 반환된 시간이 GMT와 마찬가지로 모든 시스템에서 동일하다는 점을 제외하면 gmtime과 localtime 함수 사이에는 차이가 없습니다. 모든 데이터와 변환은 동일한 방식으로 수행됩니다.
#!/usr/local/bin/perl @months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); @weekDays = qw(Sun Mon Tue Wed Thu Fri Sat Sun); ($second, $minute, $hour, $dayOfMonth, $month, $yearOffset, $dayOfWeek, $dayOfYear, $daylightSavings) = gmtime(); $year = 1900 + $yearOffset; $theGMTime = "$hour:$minute:$second, $weekDays[$dayOfWeek] $months[$month] $dayOfMonth, $year"; print $theGMTime;
1.localtime은 스크립트를 실행하는 머신의 현재 현지 시간을 반환합니다.
2.gmtime은 세계 그리니치 표준시 또는 GMT(또는 UTC)를 반환합니다.
3. 반환 값이 기대한 값과 다를 수 있으므로 필요한 경우 반드시 변환하세요.
관련 추천: "Perl Tutorial"http://www.php.cn/course/list/39.html
이 글은 Perl을 사용하여 현재 시간을 표현하는 방법에 관한 것입니다. 필요하면 도와주세요. 친구의 도움이 필요합니다!
위 내용은 Perl에서 현재 시간을 표현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!