Date to second since 1970


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Date to second since 1970
# 1  
Old 06-16-2008
Date to second since 1970

Hello,
I have found a piece of code which converts seconds elapsed since 1970 for an input date. Can anyone please explain a little bit the code below:

Code:
#!/bin/bash
# function to reproduce UNIX time() value
second()
{
set -- $(TZ=GMT date '+%Y %m %d')
local y=$1 m=1$2 d=1$3
((m-=103, d-=101, m<0 && (m+=12, --y)))
((d+=(m*153 + 2)/5+y*365+y/4-y/100+y/400-719468))
echo $((d*86400))
}


Last edited by Yogesh Sawant; 06-16-2008 at 02:22 AM.. Reason: added code tags
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Answers to Frequently Asked Questions

Compare date in .txt with system date and remove if it's lesser than system date

I m working on shell scripting and I m stuck where in my .txt file there is column as expiry date and I need to compare that date with system date and need to remove all the rows where expiry date is less than system date and create a new .txt with update. (1 Reply)
Discussion started by: Stuti
1 Replies

2. UNIX for Beginners Questions & Answers

Compare date in .txt with system date and remove if it's lesser than system date

Can someone help me with the code wherein there is a file f1.txt with different column and 34 column have expiry date and I need to get that and compare with system date and if expiry date is <system date remove those rows and other rows should be moved to new file f2.txt . I don't want to delete... (2 Replies)
Discussion started by: Stuti
2 Replies

3. Shell Programming and Scripting

Date: invalid date trying to set Linux date in specific format

i try to set linux date & time in specific format but it keep giving me error Example : date "+%d-%m-%C%y %H:%M:%S" -d "19-01-2017 00:05:01" or date +"%d-%m-%C%y %H:%M:%S" -d "19-01-2017 00:05:01" keep giving me this error : date: invalid date ‘19-01-2017 00:05:01' Please use CODE tags... (7 Replies)
Discussion started by: umen
7 Replies

4. Shell Programming and Scripting

Write Linux script to convert timestamps older than 1.1.1970 to 1.1.1980

I am having problems because some of my files have timestamps that are earlier that 1.1.1970, the Unix start of time convention. So I would like to write a script that finds all files in home folder and subfolders with timestamps earlier than 1.1.1970 and converts them to 1.1.1980. I... (3 Replies)
Discussion started by: francus
3 Replies

5. AIX

The result of Jan 01 (1970) by last command

Dears, My boss asked me to record the login information on AIX server, so I used "last" command to get i want. But it is so strange when i get a record the login date is Jan,01 1970 (as attached picture). does anyone know what happen? Thanks and Regards, (6 Replies)
Discussion started by: Zack.Chiang
6 Replies

6. Shell Programming and Scripting

Converting a date to friday date and finding Min/Max date

Dear all, I have 2 questions. I have a file with many rows which has date of the format YYYYMMDD. 1. I need to change the date to that weeks friday date(Ex: 20120716(monday) to 20120720). Satuday/Sunday has to be changed to next week friday date too. 2. After converting the date to... (10 Replies)
Discussion started by: 2001.arun
10 Replies

7. Shell Programming and Scripting

Check if a date field has date or timestamp or date&timestamp

Hi, In a field, I should receive the date with time stamp in a particular field. But sometimes the vendor sends just the date or the timestamp or correctl the date&timestamp. I have to figure out the the data is a date or time stamp or date&timestamp. If it is date then append "<space>00:00:00"... (1 Reply)
Discussion started by: machomaddy
1 Replies

8. UNIX for Dummies Questions & Answers

Delete a row from a file if one column containing a date is greater than the current system date

Hello gurus, I am hoping someone can help me with the required code/script to make this work. I have the following file with records starting at line 4: NETW~US60~000000000013220694~002~~IT~USD~2.24~20110201~99991231~01~01~20101104~... (4 Replies)
Discussion started by: chumsky
4 Replies

9. Shell Programming and Scripting

Date One Week Ago From Given Date, Not From Current Date

Hi all, I've used various scripts in the past to work out the date last week from the current date, however I now have a need to work out the date 1 week from a given date. So for example, if I have a date of the 23rd July 2010, I would like a script that can work out that one week back was... (4 Replies)
Discussion started by: Donkey25
4 Replies

10. UNIX for Dummies Questions & Answers

days since 1970

How can I get the syatem to give me the days since 1970 (as seen in the shadow file)? (4 Replies)
Discussion started by: 98_1LE
4 Replies
Login or Register to Ask a Question
Image::ExifTool::Shift(3pm)				User Contributed Perl Documentation			       Image::ExifTool::Shift(3pm)

NAME
Image::ExifTool::Shift.pl - ExifTool time shifting routines DESCRIPTION
This module contains routines used by ExifTool to shift date and time values. DETAILS
Time shifts are applied to standard EXIF-formatted date/time values (ie. "2005:03:14 18:55:00"). Date-only and time-only values may also be shifted, and an optional timezone (ie. "-05:00") is also supported. Here are some general rules and examples to explain how shift strings are interpreted: Date-only values are shifted using the following formats: 'Y:M:D' - shift date by 'Y' years, 'M' months and 'D' days 'M:D' - shift months and days only 'D' - shift specified number of days Time-only values are shifted using the following formats: 'h:m:s' - shift time by 'h' hours, 'm' minutes and 's' seconds 'h:m' - shift hours and minutes only 'h' - shift specified number of hours Timezone shifts are specified in the following formats: '+h:m' - shift timezone by 'h' hours and 'm' minutes '-h:m' - negative shift of timezone hours and minutes '+h' - shift timezone hours only '-h' - negative shift of timezone hours only A valid shift value consists of one or two arguments, separated by a space. If only one is provided, it is assumed to be a time shift when applied to a time-only or a date/time value, or a date shift when applied to a date-only value. For example: '7' - shift by 1 hour if applied to a time or date/time value, or by one day if applied to a date value '2:0' - shift 2 hours (time, date/time), or 2 months (date) '5:0:0' - shift 5 hours (time, date/time), or 5 years (date) '0:0:1' - shift 1 s (time, date/time), or 1 day (date) If two arguments are given, the date shift is first, followed by the time shift: '3:0:0 0' - shift date by 3 years '0 15:30' - shift time by 15 hours and 30 minutes '1:0:0 0:0:0+5:0' - shift date by 1 year and timezone by 5 hours A date shift is simply ignored if applied to a time value or visa versa. Numbers specified in shift fields may contain a decimal point: '1.5' - 1 hour 30 minutes (time, date/time), or 1 day (date) '2.5 0' - 2 days 12 hours (date/time), 12 hours (time) or 2 days (date) And to save typing, a zero is assumed for any missing numbers: '1::' - shift by 1 hour (time, date/time) or 1 year (date) '26:: 0' - shift date by 26 years '+:30 - shift timezone by 30 minutes Below are some specific examples applied to real date and/or time values ('Dir' is the applied shift direction: '+' is positive, '-' is negative): Original Value Shift Dir Shifted Value --------------------- ------- --- --------------------- '20:30:00' '5' + '01:30:00' '2005:01:27' '5' + '2005:02:01' '11:54:00' '2.5 0' - '23:54:00' '2005:11:02' '2.5 0' - '2005:10:31' '2005:11:02 11:54:00' '2.5 0' - '2005:10:30 23:54:00' '2004:02:28 08:00:00' '1 1.3' + '2004:02:29 09:18:00' '07:00:00' '-5' + '07:00:00' '07:00:00+01:00' '-5' + '07:00:00-04:00' '07:00:00Z' '+2:30' - '07:00:00-02:30' '1970:01:01' '35::' + '2005:01:01' '2005:01:01' '400' + '2006:02:05' '10:00:00.00' '::1.33' + '09:59:58.67' NOTES
The format of the original date/time value is not changed when the time shift is applied. This means that the length of the date/time string will not change, and only the numbers in the string will be modified. The only exception to this rule is that a 'Z' timezone is changed to '+00:00' notation if a timezone shift is applied. A timezone will not be added to the date/time string. TRICKY
This module is perhaps more complicated than it needs to be because it is designed to be very flexible in the way time shifts are specified and applied... The ability to shift dates by Y years, M months, etc, is somewhat contradictory to the goal of maintaining a constant shift for all time values when applying a batch shift. This is because shifting by 1 month can be equivalent to anything from 28 to 31 days, and 1 year can be 365 or 366 days, depending on the starting date. The inconsistency is handled by shifting the first tag found with the actual specified shift, then calculating the equivalent time difference in seconds for this shift and applying this difference to subsequent tags in a batch conversion. So if it works as designed, the behaviour should be both intuitive and mathematically correct, and the user shouldn't have to worry about details such as this (in keeping with Perl's "do the right thing" philosophy). BUGS
This feature uses the standard time library functions, which typically are limited to dates in the range 1970 to 2038. AUTHOR
Copyright 2003-2011, Phil Harvey (phil at owl.phy.queensu.ca) This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO
Image::ExifTool(3pm) perl v5.12.4 2011-03-20 Image::ExifTool::Shift(3pm)