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?
# 1  
Old 04-21-2011
How to get yesterday's date accurately using ksh?

At the time of running following commands my Unix system's time for eastern day light savings was --> 201104210003(yyyymmddHHSS)

Code:
 
# This seem to be more accurate.. 
$> echo $(TZ=$(date +%Z)+28 date +%Y%m%d%H%M)
201104200003
 
# This was constructed from old posts from this forum to find Yesterday's date. 
$> echo $(TZ=$(date +%Z)+24 date +%Y%m%d%H%M)
201104200403
 
$> echo $(date +%Z)      
EDT

Can someone tell what would be the 100% accurate solution that takes daylight savings also into account using ksh.

Preferrably still using one line solution.

I also do not fully understand what exactly above code solution is doing, if at all it can be still used!? I allways thought +24 is good, why do I need to use +28 !?
# 2  
Old 04-21-2011
Try this...

Code:
/usr/ahamed-> date
Mon Dec 20 02:51:14 CST 2010
/usr/ahamed-> date +%G%m%d%H%M
201012200251
/usr/ahamed-> date +%G%m%d%H%M --date="yesterday"
201012190251

OS : Fedora 13

regards,
Ahamed
# 3  
Old 04-21-2011
Ahmed,
We have Solaris 8. Its not recognizing --date="yesterday".

Code:
 
 
$> date +%G%m%d%H%M
201104210750

$> date +%G%m%d%H%M --date="yesterday"
201104210751

# 4  
Old 04-21-2011
Search the forum threads (look into the FAQ section in particular) - this question has been asked and answered numerous times.
# 5  
Old 04-21-2011
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.
# 6  
Old 04-21-2011
To be honest, you might have to use perl to do it any better:
Code:
perl -MPOSIX -e 'print POSIX::strftime("%Y%m%d%H%M\n", localtime(time-86400));'

# 7  
Old 04-21-2011
cambridge,
That is incredible. Your solution is not only 100% correct, it also formats it.

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