Sponsored Content
Full Discussion: UNIX Date Formatting
Top Forums Shell Programming and Scripting UNIX Date Formatting Post 302910063 by Don Cragun on Tuesday 22nd of July 2014 08:03:59 AM
Old 07-22-2014
We think you didn't try anything because you didn't show us that you tried anything. If you show us what you have tried, we can often point out a very minor fix that will make your code work. Why not give us a starting point instead of making us start from scratch? Why not help us help you?

What you want is easy to do it for any given date format. It is not possible to extract DD from MM/DD/YYYY and DD/MM/YYYY or MMDDYYYY and DDMMYYYY and YYYYMMDD and YYYYDDMM since there is no way to determine whether 20122001 was intended to be January 20, 2012 or December 20, 2001 or whether 20140102 was intended to be January 2, 2014 or February 1, 2014.

As long as you have a shell that performs POSIX required parameter expansions, for the formats you specified you could use:
Code:
var="YYYY-MM-DD"
dd=${var##*-}
printf 'var=%s, dd=%s, using %s\n' "$var" "$dd" 'dd=${var##*-}'
var=DDMMYYYY
dd=${var%??????}
printf 'var=%s, dd=%s, using %s\n' "$var" "$dd" 'dd=${var%??????}'
var=DD/MM/YYYY
dd=${var%%/*}
printf 'var=%s, dd=%s, using %s\n' "$var" "$dd" 'dd=${var%%/*}'
var=YYYY/MM/DD
dd=${var##*/}
printf 'var=%s, dd=%s, using %s\n' "$var" "$dd" 'dd=${var##*/}'

which prints:
Code:
var=YYYY-MM-DD, dd=DD, using dd=${var##*-}
var=DDMMYYYY, dd=DD, using dd=${var%??????}
var=DD/MM/YYYY, dd=DD, using dd=${var%%/*}
var=YYYY/MM/DD, dd=DD, using dd=${var##*/}

These 2 Users Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Formatting date

i need date in the following format December 14, 2005. With date +"%b %d, %Y" command i am getting the following output :- Dec 14, 2005. can anyone pls tell me how to get the full month name (2 Replies)
Discussion started by: radhika03
2 Replies

2. Shell Programming and Scripting

date formatting

Date format MM/DD/YYYY required is YYYYMMDD, I tried using sed but could not get it any help please. (4 Replies)
Discussion started by: mgirinath
4 Replies

3. UNIX for Dummies Questions & Answers

Date formatting

Running bash how do I input the date in the command line like 3/20/90 and get an output formmated like March, 20 1990. (8 Replies)
Discussion started by: knc9233
8 Replies

4. Shell Programming and Scripting

date formatting

Hi i need to have the date in the format like dd-mon-yyyy my script goes like this #!/usr/bin/bash for f in /space/can /home/lbs/current/externalcdrbackup/L_CDR_Configuration/1/200903122* ; do awk '{sum++;}END{for(i in sum) {print d,h,m,i, sum}}' "d=$(date +'%m-%d-%Y')" "h=$(date +'%H')"... (8 Replies)
Discussion started by: aemunathan
8 Replies

5. OS X (Apple)

Date Formatting, etc.

Hi - I'm using GeekTool to customize my desktop in OS X 10.5.8 I'm a complete novice as far as UNIX commands, just know enough to be dangerous. I have a command entered as a Shell to display my events from iCal: This makes my events show something like this: While this is... (1 Reply)
Discussion started by: patricksprague
1 Replies

6. Shell Programming and Scripting

Formatting a date

Hi, the date value retrieved by a parameter from the table is of the format dd/mm/yyyy. please let me know how to convert this to YYYYMMDD using sed thanks (4 Replies)
Discussion started by: swasid
4 Replies

7. Shell Programming and Scripting

Formatting date

Hi all Y=`date +'%Y'` M=`date +'%m'` D=`date +'%d'` if && ;then yesterday=$Y$M`expr $D + 30` echo $yesterday else if && ; then yesterday=$Y$M`expr $D + 29` echo $yesterday else if ; then yesterday=$Y$M`expr $D + 27` echo $yesterday else yesterday=$Y$M`expr $D - 1` echo... (8 Replies)
Discussion started by: ultimatix
8 Replies

8. Shell Programming and Scripting

Formatting date time in unix

while read l do vTimeCreated=`perl -e '@d=localtime ((stat(shift))); printf "%02d-%02d-%04d %02d:% 02d:%02d\n", $d,$d+1,$d+1900,$d,$d,$d' ${l}` echo "${l} || ${vTimeCreated}" >> ${fPrefx}_Output_Files_${vDate}.txt done < servername.txt Using the above code to format date time for each of the... (0 Replies)
Discussion started by: HeadBang
0 Replies

9. UNIX for Dummies Questions & Answers

Formatting date time in unix using perl breaks

while read l do vTimeCreated=`perl -e '@d=localtime ((stat(shift))); printf "%02d-%02d-%04d %02d:% 02d:%02d\n", $d,$d+1,$d+1900,$d,$d,$d' ${l}` echo "${l} || ${vTimeCreated}" >> ${fPrefx}_Output_Files_${vDate}.txt done < servername.txt Using the above code to format date time for each of... (5 Replies)
Discussion started by: HeadBang
5 Replies

10. UNIX for Dummies Questions & Answers

Need Date Formatting help

Hi, How can i store the date + time from the output of the ls command in loop in a variable date1? -rw-rw---- 1 user1 admin 500002 Jan 2 21:24 P002607.cssI then want to convert Jan 2 21:24 to this date format 2014-01-02 21:24:00 and save it in date2 variable. Then i would like to add... (1 Reply)
Discussion started by: mohtashims
1 Replies
snnewgroup.v0.3.8(8)					      System Manager's Manual					      snnewgroup.v0.3.8(8)

NAME
snnewgroup - create a new sn newsgroup SYNOPSIS
snnewgroup newsgroup [server] [port] DESCRIPTION
snnewgroup creates newsgroup assigning it an upstream NNTP server of server:port. If port is not specified, defaults to 119. If server is also not specified, newsgroup is created as a local group which is fed only by articles POSTed to it. You will need to be root or own /var/spool/sn in order to add new groups. ENVIRONMENT VARIABLES
SNROOT If this is set and is not empty, the value is used in place of /var/spool/sn, the default news spool directory. FILES CREATED
/var/spool/sn/newsgroup Directory where articles will be stored. /var/spool/sn/newsgroup/.created Empty file for the newsgroup creation time. /var/spool/sn/newsgroup/.serial Where snget gets its idea of the new starting serial number for newsgroup on server server:port. The value is initialized to 0. /var/spool/sn/newsgroup/.outgoing If server is specified, is a symlink to /var/spool/sn/.outgoing/server:port, which is a directory, created if it does not already exist. If server is not specified, no file /var/spool/sn/newsgroup/.outgoing will be created. See also snsend. SEE ALSO
sndelgroup, snsend N.B. Harold Tay snnewgroup.v0.3.8(8)
All times are GMT -4. The time now is 04:22 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy