Visit Our UNIX and Linux User Community


[Perl] Timestamp conversion


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting [Perl] Timestamp conversion
# 1  
Old 08-13-2009
[Perl] Timestamp conversion

Hi,

I have searched, read and tried, but no luck.

I have this code:

Code:
#!/bin/perl -w #-d

use strict;
use POSIX qw(strftime);

my $getprpw_list="/usr/lbin/getprpw -l";

my $host = "nbsol151";
my $user = "genadmin";

my %uid;
my %spwchg;
my %upwchg;
my %slogint;
my %ulogint;
my %alock;
my %lockout;

open (GETPRPW, '-|', "$getprpw_list $user");
while (<GETPRPW>) {
        chomp;
        if ( /uid=(.*?),/ ) { my $uid{$host} = $1 }
        if ( /spwchg=(.*?),/ ) { my $spwchg{$host} = $1 }
        if ( /upwchg=(.*?),/ ) { my $upwchg{$host} = $1 }
        if ( /slogint=(.*?),/ ) { my $slogint{$host} = $1 }
        if ( /ulogint=(.*?),/ ) { my $ulogint{$host} = $1 }
        if ( /alock=(.*?),/ ) { my $alock{$host} = $1 }
        if ( /lockout=(.*?)$/ ) { my $lockout{$host} = $1 }
}
close (GETPRPW);

printf "spwchg : $spwchg{$host}\n";

The result is:

Code:
spwchg : Thu Feb 12 08:19:32 2009


Which is okay.
But I need to put 4 of those dates, plus some more data , on 1 line.
Therefore I would like to have the date converted to something shorter.
Like:

Code:
spwchg : 09-02-12/08:19:32

I tried with localtime and strftime, but it does not work for me.
That is to say, I cannot make it work.

Anybody out there that knows the easiest way to convert
"Thu Feb 12 08:19:32 2009" into "09-02-12/08:19:32" ??

Thanks,

E.J.
# 2  
Old 08-13-2009
Quote:
Originally Posted by ejdv
...
Anybody out there that knows the easiest way to convert
"Thu Feb 12 08:19:32 2009" into "09-02-12/08:19:32" ??
...
One way to do it is as follows:

Code:
$
$ cat tsconv.pl
#!/usr/bin/perl
%mon = qw (Jan 1 Feb 2 Mar 3 Apr 4 May 5 Jun 6 Jul 7 Aug 8 Sep 9 Oct 10 Nov 11 Dec 12);
$time = "Thu Feb 12 08:19:32 2009";
($dow,$mth,$dom,$hms,$yr) = split / /,$time;
print "Original Format:\t$time\n";
print "Converted Format:\t";
printf("%02d-%02d-%02d/%s\n", substr($yr,2), $mon{$mth}, $dom, $hms);
$
$ perl tsconv.pl
Original Format:        Thu Feb 12 08:19:32 2009
Converted Format:       09-02-12/08:19:32
$
$

tyler_durden
# 3  
Old 08-14-2009
Thanks a lot tyler_durden.

I tried to feed the splitted data to strftime, but the printf is of course easier as I have the data I need already.

E.J.

Previous Thread | Next Thread
Test Your Knowledge in Computers #553
Difficulty: Medium
The standard input (stdin for short), standard output (stdout) and standard error (stderr) are three standard communication streams that are defined by most computer systems.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Timestamp conversion

Hello All, I have a file with many timestamps as in below format & example: 20150130105120 2015-> Year in YYYY 01-> Month in MM 30-> Day in DD 10-> Hour in HH 51-> Minute in mm 20-> Seconds in SS This is in GMT. I want to convert all these time stamps in GMT+5:30 format.. Can... (4 Replies)
Discussion started by: ailnilanjan
4 Replies

2. Shell Programming and Scripting

GMT to MST timestamp conversion

Hi Team, We have written a perl script to perform the GMT to MST timestamp conversion. Input: 2013-12-01T05:23:19.374 Output: need the given timestamp in MT (MST/MDT) #!/usr/bin/perl use strict; use warnings; use Time::Local; #always gmt #my $tval = '2013-12-01T05:23:19.374'; ... (4 Replies)
Discussion started by: kmanivan82
4 Replies

3. Shell Programming and Scripting

conversion of loop in perl

Hello Sir, How can i convert below two loop lines in perl for BLOCK in /sys/block/myblock* for BLOCK in /dev/myblock* How i can write them in perl like foreach( </sys/block/myblock*/queue/nr_requests> ) (5 Replies)
Discussion started by: learnbash
5 Replies

4. Shell Programming and Scripting

Timestamp conversion in PERL

Hi, I have a file as below I need to overwrite the 2 nd column alone to numeric format like "06122011030414012345" as per the timestamp value output file should be the microseconds can be neglected if required. Any help will be appreciated. Thanks in advance (1 Reply)
Discussion started by: irudayaraj
1 Replies

5. Shell Programming and Scripting

Epoch & Unix Timestamp Conversion Tools

Hi All, Please read the below data carefully. I need an unix command for converting unix timestamp to Epoch timestamp. I need to daily convert this today's unix(UTC) time to epoch time, so i am thinking to make a shellscript for this. Please help me for this by providing... (3 Replies)
Discussion started by: aish11
3 Replies

6. AIX

Need timestamp conversion shell script !!

Can anyone provide me with a ksh or bash script which will accept a timestamp (format is YYYY-MM-DD-HH24.Mi.Ss) and time offset (in hours). The output will be (timestamp passed - time offset passed deducted from it) in the same YYYY-MM-DD-HH24.Mi.Ss format. Basically I am trying to convert the... (1 Reply)
Discussion started by: shibajighosh
1 Replies

7. Programming

timestamp conversion problem.

Hi all. I have the following code: #include<stdio.h> #include<time.h> int main() { struct tm tm; time_t time = 1262322000; /*Jan, 01, 2010*/ char temp; int i = 0; while(i < 4) { memset(temp, 0, 128); localtime_r(&time,... (2 Replies)
Discussion started by: adm1n
2 Replies

8. Shell Programming and Scripting

conversion of different timestamp to standard timestamp

hi i need a scrit to convert one date format to another. for example i have three columns in a file which gets a different format, but lastly i want output with stadard timestamp as "yyyy-mm-dd hh:mm:ss" column1 column2 ... (2 Replies)
Discussion started by: dprakash
2 Replies

9. Shell Programming and Scripting

Timestamp to date conversion in ksh

Hi, I have a file containing timestamp( Example given below). How can i get date(mmd-dd-yyyy) from it? ($> cat file1.txt 2008-11-24 05:17:00.7043) Thanks, Sri (2 Replies)
Discussion started by: srilaxmi
2 Replies

10. Shell Programming and Scripting

conversion from EPOCH timestamp to local time zone

hello gurus, i want a perl/shell script which once invoked should convert a set of EPOCH timestamps to local time ( IST..i want) . how does it work ,i have an idea on that..but writing a perl/shell script for it is not possible for me...so i need help for the same. my exact requirement is... (2 Replies)
Discussion started by: abhijeetkul
2 Replies

Featured Tech Videos