Visit Our UNIX and Linux User Community


Change Date from one format to other


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Change Date from one format to other
# 1  
Old 09-10-2013
[Solved] Change Date from one format to other

Hi

I wish to change date from one format to another in unix.

eg: INPUT DATE: 2013159 (YEAR & NUMBER OF DAY)
OUTPUT DATE required: 20130608 (YYYYMMDD)

how to do it ?

Thanks in advance.
# 2  
Old 09-10-2013
Providing you have the GNU version of the date command available this should work.

Code:
#!/bin/bash
#
#

# check the command line
if [ $# -ne 1 ]
then
    echo "Usage: ${0##*/} <year and day of year> (i.e. 2013159)"
    exit 1
fi

# get the given year
yr=$(echo $1 | cut -c1-4)

# get the given day
dy=$(echo $1 | cut -c5-7)

# perform the conversion using the date command
output=$(date -d "${yr}-01-01 +$(( ${dy} - 1 ))days" +%Y%m%d)

# display results
echo "$output"

# done
exit 0

day2date 2013159
20130608

This User Gave Thanks to in2nix4life For This Post:
# 3  
Old 09-10-2013
Thanks a lot.
It worked beautifully Smilie
# 4  
Old 09-10-2013
No problem. Smilie
# 5  
Old 09-10-2013
If you don't have GNU date available, you can try this shell snippet:
Code:
MONTHS=(31 28 31 30 31 30 31 31 30 31 30 31)
DATE=2013159
YEAR=${DATE:0:4}
DAY=${DATE:4}
((MONTHS[1]+=YEAR%4==0))
while ((DAY > (sum+=MONTHS[i++]))) ; do : ; done; printf "%d%02d%02d\n" $YEAR $i $((DAY+MONTHS[$i-1]-sum)) 
20130608

# 6  
Old 09-10-2013
Hi.

See also dateutils for a number of date-specific utilities, such as:
Code:
dconv
       Convert DATE/TIMEs between calendrical systems.  If DATE/TIME is
       omitted date/times are read from stdin.


Best wishes ... cheers, drl
# 7  
Old 01-13-2014
Using dconv from dateutils:
Code:
dconv -i '%Y%D' 2013159
=> 2013-06-08

 

Previous Thread | Next Thread
Test Your Knowledge in Computers #892
Difficulty: Medium
sed scripts cannot have comments.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Change the date format

Hi, I was looking for a script to change the date from one format to other. A search in the forum gave me the below script as a result. #! /bin/ksh format=YYYYMMDD YEAR=${format%????} DAY=${format#??????} MON=${format#$YEAR} MON=${MON%$DAY} echo $MON/$DAY/$YEAR I got it... (2 Replies)
Discussion started by: prithvirao17
2 Replies

2. Shell Programming and Scripting

Change the date format

Hi all, I have a file that every line starts with the date and time. The format is like YYYYMMDDHHMM and I woulk like to change it to MM/DD/YY<space>HH:MM. I tried to figure out a way to do it with sed, but I don't know how I could reorganize the digits of the first format. Does anyone have any... (1 Reply)
Discussion started by: geovas
1 Replies

3. Shell Programming and Scripting

change date format

Hi, I have the variable "$date_update" in that form: 2011-12-31T13:00:09Z and I would like to change it to 31/12/2011 13:00:09 (Date and Time separated by a blank). Does anyone has a simple solution for that? (using Korn Shell) Cheers Jurgen (4 Replies)
Discussion started by: jurgen
4 Replies

4. Shell Programming and Scripting

Date format change

Dear Friends, Need your help once again, I have a variable ( e.g. ${i}) whoch has date in MM/DD/YYYY (E.g. 12/31/2011) format. I want to change it to DD/MM/YYYY (e.g. 31/12/2011) format. Request you to guide me as we are unable to do the same. Thanks in advance Anu. (1 Reply)
Discussion started by: anushree.a
1 Replies

5. Shell Programming and Scripting

Date Format Change

Hi, Please can I have some command to get yesterday in YYMMDD format? This will be used in ksh Thanks, (2 Replies)
Discussion started by: smalya
2 Replies

6. Shell Programming and Scripting

Change date format

Hi guys, I have a text file with lots of lines like this: MCOGT23R27815 27/07/07 27/05/09 SO733AM0235 30/11/07 30/11/10 NL123403N 04/03/08 04/03/11 0747AM7474 04/04/08 04/04/11 I want to change each line so the date format looks like this: MCOGT23R27815 07/07/27 09/05/27 ... (7 Replies)
Discussion started by: Tornado
7 Replies

7. Shell Programming and Scripting

Date Format Change

Hi I have a date format in a variable as Mon Jan 11 03:35:59 2010. how do i change it to YYYYMMDD format (3 Replies)
Discussion started by: keerthan
3 Replies

8. Shell Programming and Scripting

How to Change the Format of a Date

Hi All, this is my second post, last post reply was very helpful. I have a data that has date in DD/MM/YYYY (07/11/2008) format i want to replace the backslash by a dot(.) so that my awk script can read it inside the C shell script that i have written. i want to change 07/11/2008 to... (3 Replies)
Discussion started by: asirohi
3 Replies

9. UNIX for Advanced & Expert Users

Change date format

I know the command date +"%Y%m%d" can change today's date to digit format as below . $date +"%Y%m%d" 20071217 it works fine . now I want to do it back . If I have a file like below, (in the file , there are three lines, and each line have ; sign , after the ; sign is the date ) , I... (4 Replies)
Discussion started by: ust
4 Replies

10. UNIX for Dummies Questions & Answers

How to change it to the date format

Hi, I want to know how to change this string to date format 20061102122042 to 02-11-2006 12:20:42 or 02-Nov-2006 12:20:42 Please let me know at the earliest.Thanks in advance. Regards, Preetham R. (3 Replies)
Discussion started by: preethgideon
3 Replies

Featured Tech Videos