Sponsored Content
Top Forums Shell Programming and Scripting Military type format date/time conversion Post 302571916 by Corona688 on Tuesday 8th of November 2011 03:00:05 PM
Old 11-08-2011
you hardly need to match the entire line, especially when the data comes in a convenient tabular format. awk is made for this.

Code:
$ cat 24hr.awk

BEGIN { FS=","; OFS="," }
{
        split($1, A, " ");        split(A[4], B, ":");

        HR=B[1];
        MIN=substr(B[2], 0, 2);
        AM=substr(B[2], 3);

        if(AM == "PM")  HR += 12;

        $1=sprintf("%s %s %s %02d:%02d", A[1], A[2], A[3], HR, MIN);
} 1

$ awk -f 24hr.awk < data

Nov 2 2011 12:01,52893,420,1,4,0,52834,4,1208,67664942,603459924403.0,1,150054,1208,3
Nov 2 2011 17:16,52127,420,1,4,0,52122,4,1429,55943831,603459924406.0,1,150054,1429,3

$

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Date format conversion function

Hello, does somebody knows about a function that would convert a date like: YYMMDD into a date like YYYY-MM-DD ? Thank you for your ideas :) (9 Replies)
Discussion started by: Cecile
9 Replies

2. Windows & DOS: Issues & Discussions

conversion of unix time format

help me to convert unix time format into windows time format using java i have linux time ex. 1075329297.572 (2 Replies)
Discussion started by: sari
2 Replies

3. Shell Programming and Scripting

Convert Epoch time format to normal date time format in the same file

I have a file named "suspected" with series of line like these : {'protocol': 17, 'service': 'BitTorrent KRPC', 'server': '219.78.120.166', 'client_port': 52044, 'client': '10.64.68.44', 'server_port': 8291, 'time': 1226506312L, 'serverhostname': ''} {'protocol': 17, 'service': 'BitTorrent... (3 Replies)
Discussion started by: rk4k
3 Replies

4. UNIX for Dummies Questions & Answers

date format conversion

hi, i have a file in which i get date format as 22/APR/2010... now i want the date format to be in 22-04-2010 if the month changes to may the file should also have 05 as month.... pls help (3 Replies)
Discussion started by: siva_nagarajan
3 Replies

5. Shell Programming and Scripting

Date format conversion

Hi All, Can someone please let me know how can i convert the date format in unix as follow: From: 24 Oct 2011 i.e $(date +'%d %b %Y') To: 111024 i.e $(date +%y%m%d) Thanks in advance (3 Replies)
Discussion started by: davidtd
3 Replies

6. Shell Programming and Scripting

Date conversion from 24 hr format to 12 hr format

hi i want to convert date procured from sone operation which will be in 24hr format to 12 hr format displaying AM and PM # date -d @1362545068 Tue Mar 5 23:44:28 EST 2013 # this Tue Mar 5 23:44:28 EST 2013 i want to convert it so that output is as below Tue... (2 Replies)
Discussion started by: vivek d r
2 Replies

7. Shell Programming and Scripting

Date conversion and Format

Hello , I have a record in below format Hostname | Query: 0 | Release: 0 | files: 2 | Files_examined: 2 | SET timestamp=1396778638; | select * from test I need output in below format Hostname | 0 | 0 | 2 | 2 | 04/06/2014|03:03:58 | select * from test I was able to get above output... (1 Reply)
Discussion started by: Tomlight
1 Replies

8. Shell Programming and Scripting

Date format conversion

Hi, i have to check the file whether it is created today. here is the ls -l o/p -rw-r----- 20000 50000 130 Dec 12 10:21 file.txt im able to check if file is created today or not if the timestamp is in 2014-12-12 format by comparing $(date +Y-%m-%d) but stuckup as it is of format Dec 12... (6 Replies)
Discussion started by: JSKOBS
6 Replies

9. Shell Programming and Scripting

Bash Scripting with date format conversion

I have a script below and wanted to change the output into three different file format (3 separate script) #!bin/bash #input file format postwrf_d01_20131206_0600_f08400.grb2 #postwrf_d01_YYYYMMDD_ZZZZ_f0HHHH.grb2 #zzzz= 0000,0600,1200,1800 (in UTC) #HHHH=00000,00600,01200,01800 ..ect (in... (1 Reply)
Discussion started by: cumulus_255
1 Replies

10. UNIX for Beginners Questions & Answers

Date format conversion how to change this from using nawk to awk

Hi, I have a file where I need to change the date format on the nth field from DD-MM-YYYY to YYYY-MM-DD so I can accurately sort the record by dates From regex - Use sed or awk to fix date format - Stack Overflow, I found an example using nawk. Test run as below: $: cat xyz.txt A ... (2 Replies)
Discussion started by: newbie_01
2 Replies
DateFormat(3)						User Contributed Perl Documentation					     DateFormat(3)

NAME
Log::Log4perl::DateFormat - Log4perl advanced date formatter helper class SYNOPSIS
use Log::Log4perl::DateFormat; my $format = Log::Log4perl::DateFormat->new("HH:mm:ss,SSS"); # Simple time, resolution in seconds my $time = time(); print $format->format($time), " "; # => "17:02:39,000" # Advanced time, resultion in milliseconds use Time::HiRes; my ($secs, $msecs) = Time::HiRes::gettimeofday(); print $format->format($secs, $msecs), " "; # => "17:02:39,959" DESCRIPTION
"Log::Log4perl::DateFormat" is a low-level helper class for the advanced date formatting functions in "Log::Log4perl::Layout::PatternLayout". Unless you're writing your own Layout class like Log::Log4perl::Layout::PatternLayout, there's probably not much use for you to read this. "Log::Log4perl::DateFormat" is a formatter which allows dates to be formatted according to the log4j spec on http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html which allows the following placeholders to be recognized and processed: Symbol Meaning Presentation Example ------ ------- ------------ ------- G era designator (Text) AD y year (Number) 1996 M month in year (Text & Number) July & 07 d day in month (Number) 10 h hour in am/pm (1~12) (Number) 12 H hour in day (0~23) (Number) 0 m minute in hour (Number) 30 s second in minute (Number) 55 S millisecond (Number) 978 E day in week (Text) Tuesday D day in year (Number) 189 F day of week in month (Number) 2 (2nd Wed in July) w week in year (Number) 27 W week in month (Number) 2 a am/pm marker (Text) PM k hour in day (1~24) (Number) 24 K hour in am/pm (0~11) (Number) 0 z time zone (Text) Pacific Standard Time Z RFC 822 time zone (Text) -0800 ' escape for text (Delimiter) '' single quote (Literal) ' For example, if you want to format the current Unix time in "MM/dd HH:mm" format, all you have to do is this: use Log::Log4perl::DateFormat; my $format = Log::Log4perl::DateFormat->new("MM/dd HH:mm"); my $time = time(); print $format->format($time), " "; While the "new()" method is expensive, because it parses the format strings and sets up all kinds of structures behind the scenes, followup calls to "format()" are fast, because "DateFormat" will just call "localtime()" and "sprintf()" once to return the formatted date/time string. So, typically, you would initialize the formatter once and then reuse it over and over again to display all kinds of time values. Also, for your convenience, the following predefined formats are available, just as outlined in the log4j spec: Format Equivalent Example ABSOLUTE "HH:mm:ss,SSS" "15:49:37,459" DATE "dd MMM yyyy HH:mm:ss,SSS" "06 Nov 1994 15:49:37,459" ISO8601 "yyyy-MM-dd HH:mm:ss,SSS" "1999-11-27 15:49:37,459" APACHE "[EEE MMM dd HH:mm:ss yyyy]" "[Wed Mar 16 15:49:37 2005]" So, instead of passing Log::Log4perl::DateFormat->new("HH:mm:ss,SSS"); you could just as well say Log::Log4perl::DateFormat->new("ABSOLUTE"); and get the same result later on. Known Shortcomings The following placeholders are currently not recognized, unless someone (and that could be you :) implements them: F day of week in month w week in year W week in month k hour in day K hour in am/pm z timezone (but we got 'Z' for the numeric time zone value) Also, "Log::Log4perl::DateFormat" just knows about English week and month names, internationalization support has to be added. COPYRIGHT AND LICENSE
Copyright 2002-2009 by Mike Schilli <m@perlmeister.com> and Kevin Goess <cpan@goess.org>. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.12.1 2010-02-07 DateFormat(3)
All times are GMT -4. The time now is 06:35 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy