- The best cheap phones in 2024: Expert tested and reviewed
- Cloud analytics migration: how to exceed expectations
- The Segway Max G2 electric scooter for $600 off at Best Buy ahead of Black Friday
- This Nintendo Switch bundle is just $360 at Amazon ahead of Black Friday
- Kirk and Spock reunite: AI gives us the Star Trek farewell we always wanted
Displaying dates and times on Linux
Linux provides a lot of ways to display date and time information and not just for the current date and time. You can get information on dates way in the past or in the far future. You can also limit the data provided to just the current weekday or month. This post explains many of these options and provides examples of what you can expect to see.
Displaying the current date
Typing “date” on the Linux command line results in quite a bit more data than just the date. It also includes the day of the week, the current time and the time zone.
$ date Mon Oct 16 11:24:44 AM EDT 2023
The command shown below gives displays the date in the shorthand month/day/year format.
$ date +%D 10/16/23
Seeing date information for any date
In fact, the date -d command will provide information on any date you specify. If you need to know the day of the week that Nov 11th will fall on in some particular year, enter a command like this one:
$ date -d 11/11/23 Sat Nov 11 12:00:00 AM EST 2023
Aha, it’s a Saturday — maybe a good day for you to visit some friends!
If you want to see the day-of-week information for a bunch of birthdays with only a single command, you can take a list of important birthdays stored in a file like this:
$ cat birthdays Jan 4, 1972 Mar 18, 1949 May 1, 1976 Apr 1, 2017 Jan 8, 1954 Sep 23, 1979 Aug 6, 1956 May 2, 2014
Then run the date command using the -f option like this:
$ date -f birthdays Tue Jan 4 12:00:00 AM EST 1972 Fri Mar 18 12:00:00 AM EST 1949 Sat May 1 12:00:00 AM EDT 1976 Sat Apr 1 12:00:00 AM EDT 2017 Fri Jan 8 12:00:00 AM EST 1954 Sun Sep 23 12:00:00 AM EDT 1979 Mon Aug 6 12:00:00 AM EDT 1956 Fri May 2 12:00:00 AM EDT 2014
To see the current date and time in the RFC-2822 format, use a command like this one:
$ date --rfc-2822 Mon, 16 Oct 2023 12:06:00 -0400
You can also use this shortened method:
$ date -R Mon, 16 Oct 2023 12:06:02 -0400
Seeing dates associated with files
You can even use the date command to display the last update time for a file using the date -r command:
$ date -r notes Tue Sep 19 01:17:37 PM EDT 2023
Using time zones
To get the current date and time for a particular time zone, use a command like this one:
$ TZ=America/New_York date Mon Oct 16 12:17:51 PM EDT 2023
Be careful to spell the time zone correctly or you might get a response that makes you scratch your head and wonder what the answer really means:
$ TZ="America/Spaghetti" date Mon Oct 16 05:43:43 PM America 2023
Hmm, Spaghetti must be a very interesting time zone! Let’s check on an old favorite of mine.
$ TZ="America/Twilight_Zone" date Mon Oct 16 05:43:46 PM America 2023
OK, why not?
Viewing time/date details
Undoubtedly the most detailed time/date command available on Linux is the timedatectl command that provides the time in both local and UTC formats along with some additional information on your system settings.
$ timedatectl Local time: Mon 2023-10-16 11:01:40 EDT Universal time: Mon 2023-10-16 15:01:40 UTC
RTC time: Mon 2023-16 15:01:40
Time zone: America/New_York (EDT, -0400) System clock synchronized: yes NTP service: active RTC in local TZ: no
NTP in the next-to-last line in the output refers to the “network time protocol” — the internet protocol used to synchronize computer clock time sources in a network and part of TCP/IP.
Viewing time zones
Linux recognizes nearly 600 time zones that the date command can use. To list them all, try the command timedatectl list-timezones. Here’s a shortened example of what you will see:
$ timedatectl list-timezones | grep America | column | head -5 America/Adak America/Jamaica America/Anchorage America/Jujuy America/Anguilla America/Juneau America/Antigua America/Kentucky/Louisville America/Araguaina America/Kentucky/Monticello
WARNING: You won’t very likely find “Spaghetti” or the “Twilight Zone”.
$ timedatectl list-timezones | grep Spaghetti $
You can also ask the date command to supply a single piece of information on dates. For example, you can ask for the day of the week to be spelled out fully like this:
$ date +%A Monday
Additional single value options include:
Option Provides Example
%B The full month name Monday
%F The date in YYYY-MM-DD format 2023-10-16
%H The hour in 24-hour format 21
%I The hour in 12-hour format 9
%j The day of the year 289
%S Seconds 34
%V The week of the year 35
%x The date representation based on the locale 10/16/2023
%X The time representation based on the locale 09:09:11 PM
%Y Year 2023
Wrap-up
The date command can display the date and time in probably any way you might want – and then some!
Copyright © 2023 IDG Communications, Inc.