Changing date format


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Changing date format
# 1  
Old 06-25-2008
Changing date format

Hi, I have a column in a table of Timestamp datatype. For Example : Var1 is the column 2008-06-26-10.10.30.2006. I have Given query as date(var1) and time (var1) I got the file as in the below format :

File1:

Col1 Col2
2008-06-02|12.36.06
2008-06-01|23.36.35

But the problem is I need the output as

Col1 Col2
02062008|12:36:06
01022008|23:36:35


Thanks in advance.
# 2  
Old 06-25-2008
date command

`date +%Y%m%d`
will give ya date in YYYYMMDD format

`date +%H:%M:%S`

will give ya time in HH:MM:SS format

Hope this helps
# 3  
Old 06-25-2008
awk can do the job:
Code:
$ cat File1
2008-06-02|12.36.06
2008-06-01|23.36.35
$ awk -F'[-|.]' '{printf "%s%s%s%c%s%c%s%c%s\n",$3,$2,$1,124,$4,58,$5,58,$6}' File1
02062008|12:36:06
01062008|23:36:35


Last edited by danmero; 06-25-2008 at 04:33 PM..
# 4  
Old 06-25-2008
Code:
echo '2008-06-02|12.36.06' | nawk -F'([|]|[-])' '{gsub("[.]", ":", $4); print $3$2$1 "|" $4}'

# 5  
Old 06-26-2008
Thanks Danmero and vgresh99 for the reply. But still I have some another problem. If I have my file as

File1:

Col1 Col2 ID
2008-06-02|12.36.06|1-432
2008-06-01|23.36.35|1-345

In the above file I have ID column values as 1<<Hypen>>432,1<<hypen>>345.

What's happening is when I give the command
$ cat File1
$ nawk -F'([|]|[-])' '{gsub("[.]", ":", $4); print $3$2$1 "|" $4 "|" $5

It is giving output as :

Col1 Col2 ID
2008-06-02|12.36.06|1|432
2008-06-01|23.36.35|1|345

It is replacing 1<<Hypen>>432 as 1|432. Please let me know how to get out of it. Thanks in advance.
# 6  
Old 06-26-2008
Below code is more flexible and can accommodate for more fields in the data input:
Code:
$ cat b.sh
#! /bin/sh

if [ $# -ne 1 ]; then
        echo "Usage: $0 <input.txt>"
        exit 1
fi


awk '
BEGIN {
        FS="|"
}
{
        split($1,ymd,"-")
        split($2,hms,".")
        d=sprintf("%s%s%s",ymd[3],ymd[2],ymd[1])
        t=sprintf("%s:%s:%s",hms[1],hms[2],hms[3])

        printf("%s|%s",d,t)
        for(i=3;i<=NF;++i) {
                printf("|%s",$i)
        }
        printf("\n")
}' $1

$ cat b.in
2008-06-02|12.36.06|32-143|1234.23
2008-06-01|23.36.35|12-239|99.45

$ ./b.sh b.in
02062008|12:36:06|32-143|1234.23
01062008|23:36:35|12-239|99.45

# 7  
Old 06-26-2008
Code:
#!/usr/bin/ksh93

IFS='|'
while read col1 col2 col3
do
    printf "%(%d%m%Y|%T)T|%s\n" "$col1 $col2" $col3
done < file

Code:
$./t
02062008|12:36:06|1-432
01062008|23:36:35|1-345
$

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Changing date format

how do i change the following to show me what the date was 7 days ago? date +%Y-%m-%d (1 Reply)
Discussion started by: SkySmart
1 Replies

2. Shell Programming and Scripting

Changing Date Format

How can i make the date command output yesterday's date, current date and the date 4 days ago, in the following format: 2012-10-03 code: date +% ???? (3 Replies)
Discussion started by: SkySmart
3 Replies

3. Shell Programming and Scripting

Changing the date format

Hi all, I have a file with below data af23b|11-FEB-12|acc7 ad23b|12-JAN-12|acc4 as23b|15-DEC-11|acc5 z123b|18-FEB-12|acc1 I need the output as below:-(date in yyyymmdd format) af23b|20120211|acc7 ad23b|20120112|acc4 as23b|20111215|acc5 z123b|20120218|acc1 Please help me on this.... (7 Replies)
Discussion started by: gani_85
7 Replies

4. UNIX for Advanced & Expert Users

Changing the date format

Hi All, I am new to this forum, could any one help me out in resolving the below issue. Input of the flat file contains several lines of text for example find below: 5022090,2,4,7154,88,,,,,4/1/2011 0:00,Z,L,2 5022090,3,1,6648,88,,,,,4/1/2011 0:00,Z,,1 5022090,4,1,6648,88,,,,,4/1/2011... (0 Replies)
Discussion started by: av_sagar
0 Replies

5. UNIX for Dummies Questions & Answers

Changing from Excel date format to MySQL date format

I have a list of dates in the following format: mm/dd/yyyy and want to change these to the MySQL standard format: yyyy-mm-dd. The dates in the original file may or may not be zero padded, so April is sometimes "04" and other times simply "4". This is what I use to change the format: sed -i '' -e... (2 Replies)
Discussion started by: figaro
2 Replies

6. Shell Programming and Scripting

Changing Date format

How to change a date stored in a variable to YYYYMMDD. Variable output is in DD-MON-YY,required format is 'YYYYMMDD' Thanks, Sud (1 Reply)
Discussion started by: sud
1 Replies

7. Post Here to Contact Site Administrators and Moderators

changing the format of date

In my shell script i have a variable which stores date in the format of YYYYMMDD. Is there any way to format this value to MM/DD/YYYY. Thanks. (1 Reply)
Discussion started by: nasirgondal
1 Replies

8. UNIX for Dummies Questions & Answers

Changing the format of date

Hi, There are lots of threads about how to manipulate the date using date +%m %....... But how can I change the default format of the commad date? $ date Mon Apr 10 10:57:15 BST 2006 This would be on fedora and SunOs. Cheers, Neil (4 Replies)
Discussion started by: nhatch
4 Replies

9. Shell Programming and Scripting

Changing date format

Hi, Is there any way to change one date format to another ?? I mean I have a file having dates in the format (Thu Sep 29 2005) ... and i wud like to change these to YYYYMMDD format .. is there any command which does so ?? Or anything like enum which we have in C ?? Thanks in advance, ... (5 Replies)
Discussion started by: Sabari Nath S
5 Replies

10. Shell Programming and Scripting

Changing the date format

Hi, I know there is a Q/A section and lots of posts regarding date command here. I am sorry to start a new thread. I am very new to shell scripting (actually i am working on my first program), so please forgive my ignorance. I could not find an answer to my problem else where so i posted it... (10 Replies)
Discussion started by: Dream86
10 Replies
Login or Register to Ask a Question