How to convert 24 hour time to 12 hour timing?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to convert 24 hour time to 12 hour timing?
# 8  
Old 01-29-2013
Code:
awk -F ":|[ \t]+" '{i="AM"; h=$2+0} $2>12{h=$2-12} !$2{h=12} $2>11{i="PM"} {print $1,h":"$3":"$4,i}' file

Code:
awk -F ":|[ \t]+" '{print $1,($2 > 12 ? $2-12 : !$2 ? 12 : $2+0)":"$3":"$4,($2 > 11 ? "PM" : "AM")}' file


Last edited by Scrutinizer; 01-29-2013 at 06:47 PM..
# 9  
Old 01-29-2013
@Don Cragun
Thanks for pointing it out. We do use AM/PM her Smilie
I see that Scrutinizer fix this by testing if its 0 then set it to 12. !$2{h=12}
# 10  
Old 01-29-2013
Quote:
Originally Posted by Jotne
@Don Cragun
Thanks for pointing it out. We do use AM/PM her Smilie
I see that Scrutinizer fix this by testing if its 0 then set it to 12. !$2{h=12}
You're fortunate. When working with computers, 24 hour time makes processing much easier; having to convert to and from human readable form in locales that use AM/PM is a frequent source of errors. I also wish the US would convert to consistent metric measurements, but I doubt that will happen before I die. Oh, well.
This User Gave Thanks to Don Cragun For This Post:
# 11  
Old 01-29-2013
Stealing the AM/PM part from scrutinizer's proposal, I thought this might be interesting:
Code:
$ awk ' {print $1, ($2+11)%12+1 ":" $3 ":" $4, ($2>11?"PM":"AM")}' FS=":| *" file
13-Nov-2011 1:27:36 PM
13-Nov-2011 12:08:31 PM
16-Nov-2011 1:16:54 AM
etc...

These 2 Users Gave Thanks to RudiC For This Post:
# 12  
Old 01-29-2013
Nice, RudiC...

--
edit: ($2-1)%12+1 would also work..

Last edited by Scrutinizer; 01-29-2013 at 07:05 PM..
# 13  
Old 01-30-2013
Quote:
Originally Posted by Scrutinizer
edit: ($2-1)%12+1 would also work..
Thanks!
Yes, but it would cast 0:00h to 0 not 12 AM.
# 14  
Old 01-30-2013
edit: ($2-1)%12+1 would not work.. Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Windows & DOS: Issues & Discussions

NFS Share Time an Hour Ahead

Time on unix server shows 8:00a CST Time on Windows 7 Box shows 8:00a CST However when you access an NFS share the time stamp on the files show an hour ahead? Talking about a newly created file shows an hour ahead so at 8:00a the file will show a time stamp of 9:00a CST the problem it... (1 Reply)
Discussion started by: Paul Standley
1 Replies

2. Shell Programming and Scripting

add one hour to each time field

Hello All, Is there any *easy* and efficient way to add "one hour" to few fields in a file? . I have done this using a python script and it has hit with performance issues. I have around 200mi of records, which I need to modify and send across in one hour. sample input: '2012-10-17... (2 Replies)
Discussion started by: panyam
2 Replies

3. AIX

crontab 1 hour off from current time

This is a new one on me. We upgraded a system from AIX 5.3 TL 7 to 6.1 TL 7 yesterday. The app people notified us that their cron jobs weren't running at the right time. So I made a test cron entry and here's what I've found: # crontab -l * * * * * /usr/bin/date > /tmp/test.log 2>&1 # cat... (2 Replies)
Discussion started by: homeyjoe
2 Replies

4. Shell Programming and Scripting

Incrementing a time by one hour issues

Hi all, I need your help to increment a time by one hour. The difficulty is the time is in a string format and not a value cat file | awk '{print $1,$2}' 09/02/2011 20:11 09/03/2011 20:11 I want to change the time to be as follows 09/02/2011 21:11 or even 09/02/2011 20:21 Can... (2 Replies)
Discussion started by: Junes
2 Replies

5. UNIX for Dummies Questions & Answers

How to add an hour or a minute to a time?

Hi, The timestamp is June 06 2011 11:05AM i need 2 results. first, an hour added to it, June 06 2011 12:05AM second, a minute added to it, June 06 2011 11:06AM How can i do this? Also when it reaches 12:59, it needs to start from 1 again without giving the output as 13:00. it... (17 Replies)
Discussion started by: irudayaraj
17 Replies

6. Shell Programming and Scripting

Doing math on 24 hour time base

I'm trying to do some simple math on a 24 hour time base. The time is in the format of HM (HoursMinutes) For example: 2330 #23:30 1800 #18:00 730 #07:30 my problem is with the single-digit hours. If the time is 2200, I use this code: baseTime=2200 minutes=${baseTime:2:3}... (3 Replies)
Discussion started by: jondecker76
3 Replies

7. Shell Programming and Scripting

Perl - Extract 12 hour time, convert to 24 and subtract 15 minutes?

OK, I am by no means a programmer... I have been given the task to do some automation scripts. I have got most of it working from snippets I have found on the Web. One requirement has me stumped. The initial timing file created by the user is a comma delimited in the following format.... (4 Replies)
Discussion started by: autotuner
4 Replies

8. UNIX for Dummies Questions & Answers

How do i set time in 24 hour format?

Currently whenever i run date command output is shown like Mon Apr 12 05:17:21 IST 2010 When its 17:17 Here. How would i change it so that it should show. Mon Apr 12 17:17:21 IST 2010 (8 Replies)
Discussion started by: pinga123
8 Replies

9. AIX

Time getting reduced by 1 hour

I am setting TZ=EST5EDT,M3.2.0/02:00:00,M11.1.0/02:00:00 Then Setting the date to Mar 14 01:40 EST date 0314014010 Sun Mar 14 01:40:36 EDT 2010 Note that it show it EST. According to my TZ variable 01:40 Should be in EST only. On executing date command once again it shows date Sun Mar... (4 Replies)
Discussion started by: januuj23
4 Replies

10. Shell Programming and Scripting

getting hour minus the current time

Can some one help me getting last hour of the current time with date command in a script. (7 Replies)
Discussion started by: shehzad_m
7 Replies
Login or Register to Ask a Question