Get current time in hours and minutes Get current time in hours and minutes bash bash

Get current time in hours and minutes


Provide a format string:

date +"%H:%M"

Running man date will give all the format options

%a     locale's abbreviated weekday name (e.g., Sun)%A     locale's full weekday name (e.g., Sunday)%b     locale's abbreviated month name (e.g., Jan)%B     locale's full month name (e.g., January)%c     locale's date and time (e.g., Thu Mar  3 23:05:25 2005)%C     century; like %Y, except omit last two digits (e.g., 20)%d     day of month (e.g., 01)%D     date; same as %m/%d/%y%e     day of month, space padded; same as %_d%F     full date; same as %Y-%m-%d%g     last two digits of year of ISO week number (see %G)%G     year of ISO week number (see %V); normally useful only with %V%h     same as %b%H     hour (00..23)%I     hour (01..12)%j     day of year (001..366)%k     hour, space padded ( 0..23); same as %_H%l     hour, space padded ( 1..12); same as %_I%m     month (01..12)%M     minute (00..59)%n     a newline%N     nanoseconds (000000000..999999999)%p     locale's equivalent of either AM or PM; blank if not known%P     like %p, but lower case%r     locale's 12-hour clock time (e.g., 11:11:04 PM)%R     24-hour hour and minute; same as %H:%M%s     seconds since 1970-01-01 00:00:00 UTC%S     second (00..60)%t     a tab%T     time; same as %H:%M:%S%u     day of week (1..7); 1 is Monday%U     week number of year, with Sunday as first day of week (00..53)%V     ISO week number, with Monday as first day of week (01..53)%w     day of week (0..6); 0 is Sunday%W     week number of year, with Monday as first day of week (00..53)%x     locale's date representation (e.g., 12/31/99)%X     locale's time representation (e.g., 23:13:48)%y     last two digits of year (00..99)%Y     year%z     +hhmm numeric time zone (e.g., -0400)%:z    +hh:mm numeric time zone (e.g., -04:00)%::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)%:::z  numeric time zone with : to necessary precision (e.g., -04, +05:30)%Z     alphabetic time zone abbreviation (e.g., EDT)


I have another solution for your question .

In the first when use date the output is like this :

Thu 28 Jan 2021 22:29:40 IST

Then if you want only to show current time in hours and minutes you can use this command :

date | cut -d " " -f5 | cut -d ":" -f1-2 

Then the output :

22:29


you can use command

date | awk '{print $4}'| cut -d ':' -f3

as you mentioned using only the date|awk '{print $4}' pipeline gives you something like this

20:18:19

so as we can see if we want to extract some part of this string then we need a delimiter , for our case it is :, so we decide to chop on the basis of :.Now this delimiter will chop the string into three parts i.e. 20 ,18 and 19 , as we want the second one we use -f2 in our command.to sum up ,

cut : chops some string based on delimeter.

-d : delimeter (here :)

-f2 : the chopped off token that we want.