datetime - How to convert a long date to short date from SSL certificates | Unix KSH -


i'm wondering if possible convert date show oct 31 00:00:00 2013 gmt 10-31-2013.

i'm getting date follow:

notbeforedate=$(openssl x509 -noout -in ${certificate} -dates | grep "notbefore") 

the date i'm getting oct 31 00:00:00 2013 gmt , wanted convert 10-31-2013.

there's command that? or have manually?

if so, best way create own function , send long date parameter , return short date.

the openssl command make notbeforedate variable have value (at least in bash version i'm using):

notbefore=oct 31 00:00:00 2013 gmt 

so, first need remove notbefore= part:

datestr=${notbeforedate/notbefore=/} 

then can use date command:

date --date="$datestr" --utc +"%m-%d-%y" 

the --date option tells command use datestr value, --utc tells date in utc (as specified gmt part) , +"%m-%d-%y" formats date desired format.

the output is:

10-31-2013


ps: options can vary according linux version.
can check available ones date --help or man date.

for example, long options --date , --utc might not available, equivalent short versions might (just example, i'm not sure if date command has such variations between different unix versions):

date -d "$datestr" -u +"%m-%d-%y" 

unfortunately don't have exact same environment you're using (ksh in unix), should work.


the -d options seems gnu specific, if it's not available, you'll have manually parse string. assuming datestr has value oct 31 00:00:00 2013 gmt, can run:

printf '%s\n' "$datestr" | awk '{ printf "%02d-%02d-%04d\n", (index("janfebmaraprmayjunjulaugsepoctnovdec",$1)+2)/3, $2, $4}' 

the output is:

10-31-2013


Comments

Popular posts from this blog

node.js - Node js - Trying to send POST request, but it is not loading javascript content -

javascript - Replicate keyboard event with html button -

javascript - Web audio api 5.1 surround example not working in firefox -