Perl (Scripting) - Date and time using strftime
by
Jeremy Canfield |
Updated: May 25 2024
| Perl (Scripting) articles
The POSIX module with 'strftime' can be used so that you can use strftime to modify dates and times.
#!/usr/bin/perl
use warnings;
use strict;
use POSIX 'strftime';
my $date = strftime "%b %d, %Y", localtime;
my $time = strftime "%H:%M %P", localtime;
print "$date at $time\n";
This will produce a result in this format.
Jan 16, 2019 at 06:05 am
Following are commonly used options.
| Option | Description | Example |
|---|---|---|
| %Y | Year | 2018 |
| %y | Year | 18 |
| %m | Month | 01 |
| %b | Month | Jan |
| %B | Month | January |
| %d | Day (with leading zero) | 04 |
| %-d | Day (without leading zero) | 4 |
| %H | Hour (24 hour format) | 22 |
| %I | Hour (12 hour format) | 10 |
| %M | Minute | 56 |
| %S | Second | 23 |
| %p | AM or PM | AM |
| %P | am or pm | pm |
| %Z | Time zone | CST |
Future / Past date
The time+ and time- options can be used to adjust the date to a future or past date. 86400 (seconds) equals one day.
my $yesterday = strftime "%b %d, %Y", localtime(time-86400);
my $tomorrow = strftime "%b %d, %Y", localtime(time+86400);
Did you find this article helpful?
If so, consider buying me a coffee over at 