Sponsored Content
Full Discussion: Bug in Gnu date?
Top Forums Shell Programming and Scripting Bug in Gnu date? Post 303025537 by apmcd47 on Monday 5th of November 2018 09:13:55 AM
Old 11-05-2018
I've found this message in the bug-coreutils list. It turns out that date is parsing the + 1 as offset from UTC. This can be seen if I use different numbers in my date invocation:
Code:
$ date --date="15:00   + 3 minutes"
Mon  5 Nov 12:01:00 GMT 2018
$ date --date="15:00 + 2 minutes"
Mon  5 Nov 13:01:00 GMT 2018
$ date --date="15:00 + 1 minute"
Mon  5 Nov 14:01:00 GMT 2018
$ date --date="15:00 - 1 minute"
Mon  5 Nov 16:01:00 GMT 2018
$ date --date="15:00 - 2 minutes"
Mon  5 Nov 17:01:00 GMT 2018
$ date --date="15:00 - 3 minutes"
Mon  5 Nov 18:01:00 GMT 2018

Notice how the minute field stays at 01 rather than being incremented (decremented) by the value I specified.
Now, counter-intuitively, I can place the + 1 minute anywhere in the date definition, so
Code:
$ date --date="+ 1 minute 15:00"
Mon  5 Nov 15:01:00 GMT 2018
$ date --date="+ 5 minutes 15:00"
Mon  5 Nov 15:05:00 GMT 2018
$

works as I wanted it to.

So, it is a (known) bug; it is not the bug I thought it was.

Time to mark as solved.

Andrew
These 2 Users Gave Thanks to apmcd47 For This Post:
 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

GNU Date

I know there are some posts on getting the time with milliseconds included and I realize unix may not be the best on this. I have seem some posts where its advised to install the GNU date. Any one know where I can download this as I am struggling to find it. Alternatively - if you have... (5 Replies)
Discussion started by: frustrated1
5 Replies

2. Shell Programming and Scripting

Howto: easy date range iteration/counting on GNU systems in the shell

Should work in any shell, but requires GNU date, although GNU date seems only to be happy for input dates between 1902 and 2037, inclusive (49673 days). Assume $a and $b hold two dates, e.g. set a=2010-03-27 set b=2010-04-04 Marginally faster: iterator: seq -f "$a +%1.0f days" 1 50000 |... (0 Replies)
Discussion started by: laddiebuck
0 Replies

3. Linux

Date from GNU to BSD

Dear all, This should be simple but I cannot figure it out despite reading all the man pages. Could someone please help me translate this code (GNU date) to one that can be read by BSD date?: myDate=$(date -d "$h -$l days" +%Y/%m/%d), where h is a variable of the form DD/MM/YYYY, and l is... (3 Replies)
Discussion started by: thomchad
3 Replies

4. UNIX for Dummies Questions & Answers

Getting date -1 day not using GNU date

It's easy as pie to get the date minus one day on opensolaris: date -d "-1 day" +"%Y%m%d"run this command on our crappy Solaris 10 machines however (which I'm guessing doesn't have GNU date running on it) and you get: date: illegal option -- d date: illegal option -- 1 date: illegal option --... (5 Replies)
Discussion started by: rich@ardz
5 Replies

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

6. Linux

Bug in date command?

Why is the result of this command off (or less) by one hour date --date "1979-10-26 +54 hours" +%Y%m%d%H The result is 1979102805 It actually should be 1979102806 It does it with adding minutes as well and only occurs on Oct. 26, from what I can tell. What's going on here? (9 Replies)
Discussion started by: hsemune
9 Replies

7. UNIX for Advanced & Expert Users

Regarding question for GNU date

Hello All, Greetings all !! I have a query here, following are the points on same(Adding today's is 31st August 2016 for future reference). 1st Scenario: So while doing some work on GNU date, I wanted to check what was the month(in numbers) by GNU date so I have done following. date... (2 Replies)
Discussion started by: RavinderSingh13
2 Replies

8. 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
curl_getdate(3) 						  libcurl Manual						   curl_getdate(3)

NAME
curl_getdate - Convert a date string to number of seconds since January 1, 1970 SYNOPSIS
#include <curl/curl.h> time_t curl_getdate(char *datestring, time_t *now ); DESCRIPTION
This function returns the number of seconds since January 1st 1970 in the UTC time zone, for the date and time that the datestring parame- ter specifies. The now parameter is not used, pass a NULL there. NOTE: This function was rewritten for the 7.12.2 release and this documentation covers the functionality of the new one. The new one is not feature-complete with the old one, but most of the formats supported by the new one was supported by the old too. PARSING DATES AND TIMES
A "date" is a string containing several items separated by whitespace. The order of the items is immaterial. A date string may contain many flavors of items: calendar date items Can be specified several ways. Month names can only be three-letter english abbreviations, numbers can be zero-prefixed and the year may use 2 or 4 digits. Examples: 06 Nov 1994, 06-Nov-94 and Nov-94 6. time of the day items This string specifies the time on a given day. You must specify it with 6 digits with two colons: HH:MM:SS. To not include the time in a date string, will make the function assume 00:00:00. Example: 18:19:21. time zone items Specifies international time zone. There are a few acronyms supported, but in general you should instead use the specific relative time compared to UTC. Supported formats include: -1200, MST, +0100. day of the week items Specifies a day of the week. Days of the week may be spelled out in full (using english): `Sunday', `Monday', etc or they may be abbreviated to their first three letters. This is usually not info that adds anything. pure numbers If a decimal number of the form YYYYMMDD appears, then YYYY is read as the year, MM as the month number and DD as the day of the month, for the specified calendar date. EXAMPLES
Sun, 06 Nov 1994 08:49:37 GMT Sunday, 06-Nov-94 08:49:37 GMT Sun Nov 6 08:49:37 1994 06 Nov 1994 08:49:37 GMT 06-Nov-94 08:49:37 GMT Nov 6 08:49:37 1994 06 Nov 1994 08:49:37 06-Nov-94 08:49:37 1994 Nov 6 08:49:37 GMT 08:49:37 06-Nov-94 Sunday 94 6 Nov 08:49:37 1994 Nov 6 06-Nov-94 Sun Nov 6 94 1994.Nov.6 Sun/Nov/6/94/GMT Sun, 06 Nov 1994 08:49:37 CET 06 Nov 1994 08:49:37 EST Sun, 12 Sep 2004 15:05:58 -0700 Sat, 11 Sep 2004 21:32:11 +0200 20040912 15:05:58 -0700 20040911 +0200 STANDARDS
This parser was written to handle date formats specified in RFC 822 (including the update in RFC 1123) using time zone name or time zone delta and RFC 850 (obsoleted by RFC 1036) and ANSI C's asctime() format. These formats are the only ones RFC2616 says HTTP applications may use. RETURN VALUE
This function returns -1 when it fails to parse the date string. Otherwise it returns the number of seconds as described. If the year is larger than 2037 on systems with 32 bit time_t, this function will return 0x7fffffff (since that is the largest possible signed 32 bit number). Having a 64 bit time_t is not a guarantee that dates beyond 03:14:07 UTC, January 19, 2038 will work fine. On systems with a 64 bit time_t but with a crippled mktime(), curl_getdate will return -1 in this case. REWRITE
The former version of this function was built with yacc and was not only very large, it was also never quite understood and it wasn't pos- sible to build with non-GNU tools since only GNU Bison could make it thread-safe! The rewrite was done for 7.12.2. The new one is much smaller and uses simpler code. libcurl 7.0 12 Aug 2005 curl_getdate(3)
All times are GMT -4. The time now is 11:11 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy