Latest web development tutorials

Perl Tanggal Waktu

Bagian ini, kami memperkenalkan bahasa Perl untuk tanggal dan waktu pengolahan.

Perl adalah fungsi dari waktu proses adalah sebagai berikut:

  • 1, waktu () function: Pengembalian dari 1 Januari, 1970 jumlah kumulatif detik
  • 2, localtime () fungsi: Dapatkan zona waktu setempat
  • 3, gmtime () fungsi: Dapatkan GMT

waktu dan tanggal

Mari kita lihatlocaltime () fungsi, yang mengembalikan tanggal dan waktu tanpa parameter.

Berikut sembilan simbol yang mewakili parameter tanggal dan waktu yang berbeda:

sec,     # 秒, 0 到 61
min,     # 分钟, 0 到 59
hour,    # 小时, 0 到 24
mday,    # 天, 1 到 31
mon,     # 月, 0 到 11
year,    # 年,从 1900 开始
wday,    # 星期几,0-6,0表示周日
yday,    # 一年中的第几天,0-364,365
isdst    # 如果夏令时有效,则为真

Contoh presentasi sebagai berikut:

#!/usr/bin/perl
 
@months = qw( 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月 );
@days = qw(星期天 星期一 星期二 星期三 星期四 星期五 星期六);

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
print "$mday $months[$mon] $days[$wday]\n";

Contoh pelaksanaan output di atas adalah:

12 六月 星期天

Jika panggilan langsung ke localtime (), yang mengembalikan pengaturan zona waktu sistem saat ini, contoh adalah sebagai berikut:

#!/usr/bin/perl
 
$datestring = localtime();
print "时间日期为:$datestring\n";

Contoh pelaksanaan output di atas adalah:

时间日期为:Sun Jun 12 11:27:31 2016

Greenwich Mean Time (GMT)

Fungsigmtime () dan localtime () mirip, tapi kembali standar Greenwich Mean Time.

#!/usr/bin/perl

$local_datestring = localtime();
print "本地时间日期为:$local_datestring\n";

$gmt_datestring = gmtime();
print "GMT 时间日期为:$gmt_datestring\n";

Contoh pelaksanaan output di atas adalah:

本地时间日期为:Sun Jun 12 11:32:14 2016
GMT 时间日期为:Sun Jun 12 03:32:14 2016

Kita bisa melihat dari contoh, Cina dan GMT perbedaan waktu 8 jam.


tanggal Format dan waktu

Kita dapat menggunakan localtime () fungsi 9 kali elemen ke format output dari waktu yang dibutuhkan untuk mengembangkan. output diformat menggunakan printf () function:

#!/usr/bin/perl
 
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();

printf("格式化时间:HH:MM:SS\n");
printf("%02d:%02d:%02d", $hour, $min, $sec);

Contoh pelaksanaan output di atas adalah:

格式化时间:HH:MM:SS
11:35:23

Era Waktu baru (Epoch Time)

Kita dapat menggunakan fungsi waktu () untuk mendapatkan era baru waktu, fungsi mengembalikan dari 1 Januari 1970 jumlah kumulatif detik. Contohnya adalah sebagai berikut:

#!/usr/bin/perl
 
$epoc = time();

print "从1970年1月1日起累计的秒数为:$epoc\n";

Contoh pelaksanaan output di atas adalah:

从1970年1月1日起累计的秒数为:1465702883

Kita bisa output format waktu yang kita inginkan:

#!/usr/bin/perl

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
print "当期时间和日期:";
printf("%d-%d-%d %d:%d:%d",$year+1990,$mon+1,$mday,$hour,$min,$sec);

print "\n";

$epoc = time();
$epoc = $epoc - 24 * 60 * 60;   # 一天前的时间秒数
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($epoc);
print "昨天时间和日期:";
printf("%d-%d-%d %d:%d:%d",$year+1990,$mon+1,$mday,$hour,$min,$sec);

print "\n";

Contoh pelaksanaan output di atas adalah:

当期时间和日期:2106-6-12 11:49:28
昨天时间和日期:2106-6-11 11:49:28

POSIX fungsi strftime ()

Fungsi strftime () dapat diformat sebagai format waktu yang kita inginkan.

Tabel berikut ini berisi beberapa simbol format, tanda bintang menunjukkan Anda ingin bergantung pada waktu setempat:

simbol deskripsi contoh
%a Minggu singkatan (Sun..Sat) * Thu
%A Minggu nama lengkap (Sunday..Saturday) * Thursday
%b Bulan singkatan (Jan..Dec) * Aug
%B Nama lengkap bulan (January..December) * August
%c Tanggal dan Waktu * Thu Aug 23 14:55:02 2001
%C Selain tahun 100, dan pembulatan ( 00-99 ) 20
%d Hari bulan ( 01-31 ) 23
%D Tanggal, MM/DD/YY setara dengan %m/%d/%y 08/23/01
%e Beberapa hari pertama bulan itu, diisi dengan spasi digit ( 1-31 ) 23
%F YYYY-MM-DD singkatan mirip dengan %Y-%m-%d 2001-08-23
%g Dua digit terakhir tahun ( 00-99 ) 01
%g tahun 2001
%h * Bulan pendek (dan %b option) Aug
%H 24-jam ( 00-23 ) 14
%I 12-jam ( 01-12 ) 02
%j Beberapa hari pertama tahun ini ( 001-366 ) 235
%m Bulan ( 01-12 ) 08
%M Min ( 00-59 ) 55
%n Baris baru ( '\n' )
%p Tampilkan AM atau PM PM
%r Waktu (hh: mm: ss AM atau PM), 12 jam * 02:55:02 pm
%R 24 jam HH:MM format waktu, sama dengan %H:%M 14:55
%S Detik ( 00-61 ) 02
%t tab horisontal ( '\t' )
%T Waktu (24 jam) (hh: mm: ss) , sama dengan %H:%M:%S 14:55
%u ISO 8601 format seminggu, Senin adalah 1 ( 1-7 ) 4
%U Beberapa minggu pertama tahun ini, hari Minggu adalah hari pertama ( 00-53 ) 33
%V ISO 8601 angka minggu ( 00-53 ) 34
%w Pertama beberapa hari (0 untuk Minggu) seminggu ( 0-6 ) 4
%W Beberapa minggu pertama tahun ini, Senin adalah hari pertama ( 00-53 ) 34
%x Format untuk menampilkan tanggal (mm / dd / yy) * 08/23/01
%X Menampilkan Format waktu * 14:55:02
%y , Dua-digit ( 00-99 ) 01
%Y tahun 2001
%z ISO 8601 zona waktu offset dari UTC (1 menit = 1, 1 jam = 100)

+100
%Z Nama dari zona waktu saat ini, seperti "China Standard Time" *

CDT
%% % Symbol %

Contohnya adalah sebagai berikut:

#!/usr/bin/perl
use POSIX qw(strftime);

$datestring = strftime "%Y-%m-%d %H:%M:%S", localtime;
printf("时间日期 - $datestring\n");

#  GMT 格式化时间日期
$datestring = strftime "%Y-%m-%d %H:%M:%S", gmtime;
printf("时间日期 - $datestring\n");

Contoh pelaksanaan output di atas adalah:

时间日期 - 2016-06-12 12:15:13
时间日期 - 2016-06-12 04:15:13