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