How to get yesterday's date accurately using ksh?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to get yesterday's date accurately using ksh?
# 8  
Old 04-21-2011
Quote:
Originally Posted by kchinnam
vgersh99,

I did lot of searching and read lot of postings about this on this site and finally decided to use my own improved syntax
---> $(TZ=$(date +%Z)+24 date +%Y%m%d%H%M)

But I found a bug with this,, apparently this is putting yesterday's datetime 4 hrs ahead of what its supposed to be.

Please be patient and validate what I found. This is really important for scheduling jobs I am sure for many of us using older shells. I think its worth re-validating it.

Unless you print Hours and minutes you will not know what this is giving is true or not. Or test this after 10 PM.
Once again, check out the posted link to the FAQ session - no need to reinvent the wheel (as it will most likely come out squared).
# 9  
Old 04-21-2011
Quote:
Originally Posted by kchinnam
cambridge,
That is incredible. Your solution is not only 100% correct, it also formats it.
Glad to be of service.

Quote:
I am still looking for a reason why the ksh syntax that almost everyone said is working in so many previous posts puts time 4 hrs ahead with "$(TZ=$(date +%Z)+24 date +%Y%m%d%H%M)" and works with " echo $(TZ=$(date +%Z)+28 date +%Y%m%d%H%M)" syntax.
I personally wouldn't choose to modify the TZ variable in order to do date manipulation, because it's not so easy for others to understand your code in the future. However, you can do more background reading here: TZ Variable - The GNU C Library
# 10  
Old 04-21-2011
Even though "echo $(date +%Z)" is giving "EDT", using it to derive datetime is resulting a GMT datetime.

Code:
 
echo $(TZ=$(date +%Z)+24 date +%Y%m%d%H%M)


How can we correct above statement to give US Eastern Daylight savings aware datetime?

Following works as a stand alone.., but I could not substitute it with %Z and add +24 to it.

Code:
 
$> export TZ="America/New_York"; echo $(date +%TZ)


# 11  
Old 04-21-2011
That "+24" construct is not portable and that's why it's biting you. If you read that FAQ article, I point out the non-portability of this technique. But the idea that the authors of this technique were shooting for was to add 24 to the offset already used by the timezone software. It appears that you are overriding your value rather than modifying it. Rather than screwing around with this troublesome contruct, why not just use one the reasonable solutions that have been offered?
# 12  
Old 04-21-2011
wow, Looks like I am offending too many people here.. I will stop asking more questions on this topic.
# 13  
Old 04-21-2011
This User Gave Thanks to ctsgnb For This Post:
# 14  
Old 04-21-2011
Thanks a lot ctsgnb, I will stop looking for a one liner solution for this using ksh/bash.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script to compare two files of todays date and yesterday's date

hi all, How to compare two files whether they are same are not...? like i had my input files as 20141201_file.txt and 20141130_file2.txt how to compare the above files based on date .. like todays file and yesterdays file...? (4 Replies)
Discussion started by: hemanthsaikumar
4 Replies

2. Shell Programming and Scripting

How to append date to filename, but base it on yesterday's date?

Hello, I'd like to write a monthly archive script that archives some logs. But I'd like to do it based on yesterday's date. In other words, I'd like to schedule the script to run on the 1st day of each month, but have the archive filename include the previous month instead. Here's what I... (5 Replies)
Discussion started by: nbsparks
5 Replies

3. Shell Programming and Scripting

How to get tomorrow,yesterday date from date Command

Hi I want to get tomorrow and yesterday date from date command. My shell is KSH and server is AIX. I tried several options, but unable to do. Please help on this. Regards Rajesh (5 Replies)
Discussion started by: rajeshmepco
5 Replies

4. Shell Programming and Scripting

[Solved] Replace yesterday date with today's date except from the first line

Hello, I have a file like this: 2012112920121130 12345620121130msABowwiqiq 34477420121129amABamauee e7748420121130ehABeheheei in case the content of the file has the date of yesterday within the lines containing pattern AB this should be replaced by the current date. But if I use... (3 Replies)
Discussion started by: Lilu_CK
3 Replies

5. Shell Programming and Scripting

Need help in Shell Script comparing todays date with Yesterday date from Sysdate

Hi, I want to compare today's date(DDMMYYYY) with yesterday(DDMMYYYY) from system date,if (today month = yesterday month) then execute alter query else do nothing. The above requirement i want in Shell script(KSH)... Can any one please help me? Double post, continued here. (0 Replies)
Discussion started by: kumarmsk1331
0 Replies

6. Shell Programming and Scripting

yesterday date

HI All, I am trying so long to find the yesterday's date to run a script but i failed kinldy share the command to find yesterday's date in ksh i tried with date --date='1 day ago' but it displaying error your help will highly apeerciated. Thanks (7 Replies)
Discussion started by: thelakbe
7 Replies

7. Shell Programming and Scripting

Getting yesterday `date`

Hi, `date` command will give the current days date. Is there any command to get the previous day date? I need the previous day value in my script. Ahamed. (1 Reply)
Discussion started by: ahamed
1 Replies

8. Shell Programming and Scripting

Getting yesterday DATE

Hi It is possible pass to one program a parameter YESTERDAY DATE , i mean the current date less one day (sysdate -1) ? (21 Replies)
Discussion started by: osymad
21 Replies

9. Shell Programming and Scripting

Compare date from db2 table to yesterday's Unix system date

I am currently running the following Korn shell script which works fine: #!/usr/bin/ksh count=`db2 -x "select count(*) from schema.tablename"` echo "count" I would like to add a "where" clause to the 2nd line that would allow me to get a record count of all the records from schema.tablename... (9 Replies)
Discussion started by: sasaliasim
9 Replies

10. Shell Programming and Scripting

yesterday date month/date

Hi expert, I want to retrieve yesterday su log. How to calculate and assign variable value ( 06/23 ) in myVariable ? #!/bin/sh myVariable=yesterday date in month/date cat /var/adm/sulog | grep $myVariable > file.txt many thanks! (5 Replies)
Discussion started by: skully
5 Replies
Login or Register to Ask a Question