Convert Date Format


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Convert Date Format
# 8  
Old 12-05-2013
Get the following error for the script provided
Code:
DEV> vi dateformat.sh
#!/bin/ksh
cur_date="${1:-2013/03/13 13:24:50}"
printf "Processing date: %s\n" "$cur_date"
amn="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
y=${cur_date%%/*}
m=${cur_date:5:2}
dm=${m#0}
d=${cur_date:8:2}
t=${cur_date#* }
printf "%s-%s-%s %s\n" "$d" "${amn:$(((dm-1)*3)):3}" "$y" "$t"

"dateformat.sh" 10 lines, 278 characters

DEV> dateformat.sh 
Processing date: 2013/03/13 13:24:50
./dateformat.sh[6]: m=${cur_date:5:2}: bad substitution

DEV> dateformat.sh 2013/12/11 14:20:25
Processing date: 2013/12/11
./dateformat.sh[6]: m=${cur_date:5:2}: bad substitution

DEV>

---------- Post updated at 10:54 AM ---------- Previous update was at 10:29 AM ----------

works great. Thank you very much. I wish it worked for bash as I am trying to do this in a script that is coded for bash already for oracle ebs and it not always easy to use ksh for oracle ebs unix scripts.
Code:
DEV> vi dateformat1.sh
#!/bin/ksh
cur_date="${1:-2013/03/13 13:24:50}"
printf "Processing date: %s\n" "$cur_date"
set -A amn JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
IFS='/ '
set -- $cur_date
printf "%s-%s-%s %s\n" "$3" "${amn[10#$2-1]}" "$1" "$4"
DEV> dateformat1.sh 
Processing date: 2013/03/13 13:24:50
13-MAR-2013 13:24:50
DEV> dateformat1.sh '2013/12/11 14:20:25'
Processing date: 2013/12/11 14:20:25
11-DEC-2013 14:20:25

DEV>

# 9  
Old 12-05-2013
Quote:
Originally Posted by cartrider
I wish it worked for bash as I am trying to do this in a script that is coded for bash already for oracle ebs and it not always easy to use ksh for oracle ebs unix scripts.
This is the bash version of that code:

Code:
#!/bin/bash
cur_date="${1:-2013/03/13 13:24:50}"
printf "Processing date: %s\n" "$cur_date"
amn=(JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC)
IFS='/ '
set -- $cur_date
printf "%s-%s-%s %s\n" "$3" "${amn[10#$2-1]}" "$1" "$4"

If you're using this method it in another script try defining it as a function, this then keeps any shell positional parameters intact. I also saved and restored IFS as later parts of your script will most likely depend on it.

Code:
#!/bin/bash
function dateformat1()
{
  amn=(JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC)
  OIFS=$IFS
  IFS='/ '
  set -- $1
  IFS=$OIFS
  printf "%s-%s-%s %s\n" "$3" "${amn[10#$2-1]}" "$1" "$4"
}

dateformat1 "${1:-2013/03/13 13:24:50}"


Last edited by Chubler_XL; 12-05-2013 at 04:17 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert date format

Hi guys I am looking to convert this kind of entry in a txt file 26/04/2008 to April 2008 Note : this is not using the date command , these are date entries in a file can i do this with sed ? Use code tags, thanks. (5 Replies)
Discussion started by: johnnybananas
5 Replies

2. Shell Programming and Scripting

Convert string into date format

Hi, I am getting the below string as a input for date. 12/03/2013 11:02 AM I want to change this date as 03-DEC-2013 11:02 AM. Could you please help on this. Thanks Chelladurai (4 Replies)
Discussion started by: ckchelladurai
4 Replies

3. Shell Programming and Scripting

awk convert date format

Could you tell me how to convert the following dates? If I have m/d/yyyy, I want to have 0m/0d/yyyy. I want my dates to always be 8 digits. In other words, I want a 0 inserted whenever the month or day is a single digit. My issue is first I need to use FS="," to get field $4 for the... (7 Replies)
Discussion started by: wbrunc
7 Replies

4. Shell Programming and Scripting

Convert any date format into yyyy/mm/dd

How can I convert any user inputted date into yyyy/mm/dd ? For example user can input date one of the following 20120121 , 2012-01-21 ,01/21/2012,01/21/2012 etc But I need to convert any of the date entered by user into yyyy/mm/dd (2012/01/2012). Any suggestion. Thanks in advance this is... (1 Reply)
Discussion started by: ZeroHedge
1 Replies

5. Shell Programming and Scripting

convert date format

I've been using this thread: https://www.unix.com/shell-programming-scripting/58675-change-date-dd-mmm-yyyy-mm-dd-yyyy.html and https://www.unix.com/shell-programming-scripting/14655-changing-yyyy-mm-dd-ddmmyy.html and this code: on this format: 05/16/2008 18:30:49 Installation 48985and I'm... (3 Replies)
Discussion started by: dba_frog
3 Replies

6. Shell Programming and Scripting

Convert date to Unix format

Dear Expert How to convert date in format of YYYY-MM-DD HH:MM:SS to unix format using a script or command if avaliable Example "2011-05-15 18:00:00" is converted to 1330970400 I tried to use option d in date command but no use, Im using solaris 10 Thanks a lot (12 Replies)
Discussion started by: yahyaaa
12 Replies

7. Shell Programming and Scripting

convert date format to mysql date format in log file

I have a comma delimited log file which has the date as MM/DD/YY in the 2nd column, and HH:MM:SS in the 3rd column. I need to change the date format to YYYY-MM-DD and merge it with the the time HH:MM:SS. How will I got about this? Sample input 02/27/09,23:52:31 02/27/09,23:52:52... (3 Replies)
Discussion started by: hazno
3 Replies

8. 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

9. UNIX for Dummies Questions & Answers

Convert date format

Hi All, Need your help in converting a date format in ksh. I'm currently working on SUN os where my script is getting a date from a table. The result returns to ksh in this format: 17-JUL-08 How do i convert this string to a date format like yyyymmdd? I tried #!/bin/ksh d="17-JUL-08"... (5 Replies)
Discussion started by: agathaeleanor
5 Replies

10. Shell Programming and Scripting

convert mmddyy date format to ccyyddd format??

hi, for reading a cobol indexed file i need to convert "mmddyy" date format to "ccyyddd" format. i checked the datecalc and other scripts but couldnt modify them to cater to my need:(... The datecalc gives an output which i believe is the total days till that date, but i want to convert it... (2 Replies)
Discussion started by: Bhups
2 Replies
Login or Register to Ask a Question