Latest web development tutorials

Perl วันที่เวลา

ในส่วนนี้เราแนะนำภาษา Perl สำหรับวันที่และเวลาของการประมวลผล

Perl เป็นหน้าที่ของเวลาการประมวลผลดังต่อไปนี้:

  • 1 เวลา () ฟังก์ชัน: คืนวันที่ 1 มกราคม 1970 จำนวนรวมของวินาที
  • 2 localtime () ฟังก์ชัน: Get โซนเวลาท้องถิ่น
  • 3 gmtime () ฟังก์ชัน: รับ GMT

วันและเวลาปัจจุบัน

ลองดูlocaltime () ฟังก์ชันซึ่งส่งกลับวันและเวลาปัจจุบันที่ไม่มีพารามิเตอร์

ต่อไปนี้เป็นตัวแทนของสัญลักษณ์เก้าวันที่และเวลาที่แตกต่างกันพารามิเตอร์:

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    # 如果夏令时有效,则为真

ตัวอย่างของงานนำเสนอดังต่อไปนี้:

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

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

ตัวอย่างของการดำเนินงานของการส่งออกดังกล่าวข้างต้นเป็น:

12 六月 星期天

ถ้าสายตรงไปยัง localtime () ซึ่งผลตอบแทนที่การตั้งค่าโซนเวลาระบบปัจจุบันตัวอย่างดังต่อไปนี้:

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

ตัวอย่างของการดำเนินงานของการส่งออกดังกล่าวข้างต้นเป็น:

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

เวลามาตรฐานกรีนิช (GMT)

gmtime ฟังก์ชั่น ()และ localtime () จะคล้ายกัน แต่มันกลับมาตรฐาน Greenwich Mean Time

#!/usr/bin/perl

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

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

ตัวอย่างของการดำเนินงานของการส่งออกดังกล่าวข้างต้นเป็น:

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

เราจะเห็นได้จากตัวอย่างจีนและเวลา GMT แตกต่างกัน 8 ชั่วโมง


รูปแบบวันที่และเวลา

เราสามารถใช้ localtime () องค์ประกอบฟังก์ชั่นที่ 9 เวลาที่จะใช้รูปแบบการส่งออกของเวลาที่ต้องใช้ในการพัฒนา เอาท์พุทที่จัดรูปแบบการใช้ printf () ฟังก์ชัน:

#!/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);

ตัวอย่างของการดำเนินงานของการส่งออกดังกล่าวข้างต้นเป็น:

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

เวลายุคใหม่ (ยุค Time)

เราสามารถใช้เวลา () ฟังก์ชันที่จะได้รับศักราชใหม่ของเวลากลับมาทำงานจาก 1 มกราคม 1970 จำนวนรวมของวินาที ตัวอย่างมีดังนี้

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

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

ตัวอย่างของการดำเนินงานของการส่งออกดังกล่าวข้างต้นเป็น:

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

เราสามารถส่งออกรูปแบบเวลาที่เราต้องการ:

#!/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";

ตัวอย่างของการดำเนินงานของการส่งออกดังกล่าวข้างต้นเป็น:

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

ฟังก์ชั่น POSIX strftime ()

strftime ฟังก์ชั่น () สามารถจัดรูปแบบเป็นรูปแบบเวลาที่เราต้องการ

ตารางต่อไปนี้แสดงบางส่วนของการจัดรูปแบบสัญลักษณ์เครื่องหมายดอกจันแสดงว่าคุณต้องการพึ่งพาเวลาท้องถิ่น:

สัญญลักษณ์ ลักษณะ ตัวอย่าง
%a สัปดาห์ย่อ (Sun..Sat) * Thu
%A สัปดาห์ชื่อเต็ม (Sunday..Saturday) * 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 OPTION) 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 แสดง AM หรือ PM 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 รูปแบบการแสดงวันที่ (dd / mm / 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
%% % สัญลักษณ์ %

ตัวอย่างมีดังนี้

#!/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");

ตัวอย่างของการดำเนินงานของการส่งออกดังกล่าวข้างต้นเป็น:

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