您可以在Perl中使用POSIX函数strftime()来格式化下表中的日期和时间。请注意,标有星号(*)的说明符与语言环境有关。
说明符 | 取而代之 | 例 | | %一种 | 工作日缩写名称* | 周四 | 
| %一种 | 工作日全名* | 星期四 | 
| %b | 月份缩写名称* | 八月 | 
| %B | 月份全名* | 八月 | 
| %C | 日期和时间表示* | 2001年8月23日星期四14:55:02 | 
| %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相同) | 八月 | 
| %H | 24小时格式的一小时(00-23) | 14 | 
| %一世 | 12小时格式的一小时(01-12) | 02 | 
| %j | 一年中的哪一天(001-366) | 235 | 
| %m | 以十进制数表示的月份(01-12) | 08 | 
| %M | 分钟(00-59) | 55 | 
| %n | 换行符('\n') | 
 | 
| %p | AM或PM指定 | 下午 | 
| %r | 12小时制* | 下午02:55:02 | 
| %R | 24小时HH:MM时间,相当于%H:%M | 14:55 | 
| %S | 第二次(00-61) | 02 | 
| %t | 水平制表符('\t') | 
 | 
| %T | ISO8601时间格式(HH:MM:SS),等效于%H:%M:%S | 14:55 | 
| %u | ISO8601工作日为数字,星期一为1(1-7) | 4 | 
| %U | 以第一个星期日为第一个星期的第一天的星期数(00-53) | 33 | 
| %V | ISO8601周编号(00-53) | 34 | 
| %w | 工作日为小数,星期日为0(0-6) | 4 | 
| %W | 第一个星期一为第一个星期的第一天的星期数(00-53) | 34 | 
| %X | 日期表示* | 08/23/01 | 
| %X | 时间表示* | 14:55:02 | 
| %y | 年,最后两位数(00-99) | 01 | 
| %Y | 年 | 2001 | 
| %z | ISO8601与时区UTC的偏移量(1分钟=1,1小时=100)如果无法终止时区,则没有字符 | +100 | 
| %Z | 时区名称或缩写*如果无法终止时区,则没有字符 | CDT | 
| %% | 一个牌子 | % | 
让我们检查以下示例以了解用法-
示例
#!/usr/local/bin/perl
use POSIX qw(strftime);
$datestring = strftime "%a %b %e %H:%M:%S %Y", localtime;
printf("date and time - $datestring\n");
# or for GMT formatted appropriately for your locale:
$datestring = strftime "%a %b %e %H:%M:%S %Y", gmtime;
printf("date and time - $datestring\n");输出结果
执行以上代码后,将产生以下结果-
date and time - Sat Feb 16 07:10:23 2013
date and time - Sat Feb 16 14:10:23 2013