Howard Hinnant
9f6c8d8c10
Update include paths for new directory structure
2017-09-22 20:10:58 -04:00
Markus Werle
3c3ba68906
Proposal for an alternative directory structure
2017-09-22 20:03:16 -04:00
Howard Hinnant
c5e58fd015
include <wordexp.h> is unnecessary when using USE_OS_TZDB
2017-09-10 13:50:51 -04:00
Tony Walker
ef6d53595d
Fix CHAR_BIT not found by including climits.
2017-09-09 19:05:54 -04:00
Howard Hinnant
0f658db2cd
Correct how width is counted for fractional seconds
...
* Include decimal point character in count.
2017-09-09 15:32:47 -04:00
Howard Hinnant
481771ef5e
Add support down to femtosecond precision
...
* Requires platform specific use of 128bit integral representation
(e.g. std::chrono::duration<__int128_t, std::femto>).
2017-09-09 10:30:39 -04:00
atkawa7
5f01382e24
Enable current_zone() on FreeBSD
2017-09-08 20:47:38 -04:00
Kiryl Mikhneev
41563c46e8
Disabled some template constraints for vs since it does not work properly there
2017-09-07 19:41:47 -04:00
Kiryl Mikhneev
bba9aeafab
Added shortened curl include path to support nuget package rmt_curl
2017-09-07 19:33:59 -04:00
Howard Hinnant
4cb893c780
Enable DATE_BUILD_DLL for Linux and macOS
2017-09-05 20:07:13 -04:00
gm
c09d35534d
Reformulate macros for static and shared linking on windows.
2017-09-05 19:59:57 -04:00
Howard Hinnant
272d487b3d
Add non-const front() to tzdb_list
...
* Needed when USE_OS_TZDB==1 && MISSING_LEAP_SECONDS==0
2017-08-31 17:45:42 -04:00
Howard Hinnant
aad6010831
Add test for custom time zone support
2017-08-31 10:44:07 -04:00
gm
0707cc4932
NULL to nullptr change.
2017-08-27 21:13:47 -04:00
gmcode
d3fcf00d55
Small exception safety improvement.
2017-08-27 21:13:47 -04:00
gm
2402a0bd25
undef somethings
2017-08-28 13:10:57 +12:00
Howard Hinnant
873aa0515e
Correct the fixes for VS-2017 that broke everyone else
2017-08-21 21:21:59 -04:00
Howard Hinnant
49b50c43d9
Introduce the ONLY_C_LOCALE
...
*Eliminates dependance on on the time_get and time_put facets.
2017-08-18 22:56:03 -04:00
Howard Hinnant
38c24b4090
Add fixes for VS-2017.
2017-08-18 22:55:31 -04:00
Howard Hinnant
2515dfd1b5
Remove deleted weekday(int) constructor
...
* This was a failed experiment.
2017-08-15 13:44:16 -04:00
Howard Hinnant
c3ab69ee0d
Hard code year::min(), year::max() to [-32767, 32767]
...
* When year < 0, -year > 0 (always).
* These are the minimal limits C places on short.
* Reserving -32768 is useful in the implementation.
2017-08-15 12:42:27 -04:00
Howard Hinnant
be871e6c85
Add is_clock
2017-08-13 22:57:36 -04:00
Howard Hinnant
eced00fc1c
Make tzdb_list::push_front private
2017-08-12 17:42:48 -04:00
Howard Hinnant
859a50a70e
Replace list<TZ_DB> with tzdb_list
...
* tzdb_list is a singly linked list with an atomic head
* push_front() and front() are thread safe.
2017-08-12 17:41:55 -04:00
Howard Hinnant
80a142407a
Add zoned_traits
...
* zoned_traits is SFINEA-friendly.
* zoned_traits is specialized on const time_zone*
to call locate_zone.
* zoned_time accesses the database via zoned_traits<TimeZonePtr>.
* Clients with custom time zone databases can specialize zoned_traits.
2017-08-12 17:41:55 -04:00
Howard Hinnant
d4d6eda861
Template zoned_time on TimeZonePtr
...
* TimeZonePtr defaults to const time_zone*.
* Adjust template deduction guides and make_zoned.
* Add HAS_STRING_VIEW
2017-08-12 17:41:55 -04:00
Howard Hinnant
07ada69385
Expose a list<TZ_DB>
...
* Existing API always accesses the front of the list.
* Add locate_zone and current_zone member functions to TZ_DB.
* reload_tzdb() pushes a new database to the front of the list.
* get_tzdb_list() exposes the list<TZ_DB>&.
2017-08-12 17:41:55 -04:00
Jan Kratochvil
e7c3ca0e90
Fix compilation warnings for -DUSE_OS_TZDB.
...
tz.cpp:1617:24: error: unused parameter 't' [-Werror,-Wunused-parameter]
maybe_reverse_bytes(T& t, std::false_type)
^
tz.cpp:2470:1: error: unused function 'get_version' [-Werror,-Wunused-function]
get_version()
^
tz.cpp: In lambda function:
tz.cpp:1922:84: error: declaration of ‘t’ shadows a previous local [-Werror=shadow]
[](const sys_seconds& x, const transition& t)
^
tz.cpp:1921:19: note: shadowed declaration is here
for (auto t = std::upper_bound(transitions_.begin(), transitions_.end(), l,
^
2017-08-12 16:59:23 -04:00
Howard Hinnant
82de27d339
Fix bug in sys_time and local_time from_stream
...
* to handle microfortnights
2017-08-12 13:56:17 -04:00
Howard Hinnant
922abf1299
Protect from Oracle sun macro
2017-08-06 00:30:27 -04:00
Howard Hinnant
c4dcd5eb78
More Oracle fixes.
2017-08-05 20:27:15 -04:00
Howard Hinnant
9c181a1440
Update tests for default constructible:
...
* weekday_indexed
* year_month_weekday
2017-08-05 16:31:18 -04:00
Howard Hinnant
e2a38e600c
Set constexpr rules to C++11 for Oracle 12.6 and earlier
2017-08-05 16:06:20 -04:00
Howard Hinnant
4ae416f06a
Add default constructor for weekday_indexed
...
* This enables the year_month_weekday default constructor.
2017-07-27 14:34:11 -04:00
Howard Hinnant
5726b70bb7
Turn off constexpr when using clang + VS-2013 std::lib
2017-07-24 08:26:37 -04:00
Howard Hinnant
e6b1e0fe58
Allow read_unsigned to read 0 digits
...
* Will allow reading "optional" integers.
2017-07-24 08:18:18 -04:00
schmidt9
170ebfd354
Another memory leaks fix
2017-07-22 12:00:52 -04:00
Paul Thompson
a5b77bb0fe
add to copyright holder
2017-07-21 10:41:48 -04:00
Paul Thompson
5a53cb38a3
VS2013 doesn't accept exception specification for constructor default. Resolves #183
2017-07-21 10:41:48 -04:00
Paul Thompson
494fee4e1b
User defined literals are not supported by VS2013, use explicit year constructor instead
2017-07-21 10:41:48 -04:00
Howard Hinnant
a034eeed23
Have parse of %p set failbit if unsuccessful.
2017-07-19 15:26:29 -04:00
Howard Hinnant
a1b19a2ed6
Silence some warnings.
2017-07-19 15:25:57 -04:00
schmidt9
496497d16e
Fix memory leaks
2017-07-17 12:25:27 -04:00
Semir Puskarevic
a828109809
Suppress -Wunused-function warning
2017-07-13 09:49:38 -04:00
Howard Hinnant
2129b813c9
Add www.safe.com to list of projects using date
2017-07-10 20:42:29 -04:00
Howard Hinnant
c8d3cc14da
Add zoned_time deduction guides
2017-07-06 20:49:53 -04:00
Howard Hinnant
893cf51fd8
Add test for zoned_time
2017-07-06 20:49:28 -04:00
Howard Hinnant
6067371127
Don't pass ill-formed strings to stold
...
* Avoid exceptions coming out of stold.
* from_stream should always set failbit instead of throw.
2017-07-06 11:54:55 -04:00
Howard Hinnant
0c8b1f5967
Put expand_path back in when INSTALL is defined
2017-07-05 10:30:23 -04:00
Howard Hinnant
16dd16e64e
Silence warning on VS
2017-07-03 16:48:48 -04:00
Howard Hinnant
ea0158c779
Move get_program_folder closer to where it is used
2017-07-03 16:45:11 -04:00
Howard Hinnant
a0b8883763
Remove unused variables in load_timezone_mappings_from_xml_file
2017-07-03 16:43:01 -04:00
Howard Hinnant
156bdf8bc6
Remove #ifdef in time_of_day
...
* Workaround for MSVC no longer needed.
2017-07-03 16:41:09 -04:00
Howard Hinnant
2d1d8f2255
Put %Z back into default streaming for zoned_time
...
* It was removed by accident.
2017-07-01 23:00:34 -04:00
Howard Hinnant
e0c962a8ce
Silence unused variable warnings
2017-07-01 20:37:14 -04:00
Roel Standaert
7cbc4d8013
Also ignore leap-seconds.list
...
The tzdata package on Ubuntu includes /usr/share/zoneinfo/leap-
seconds.list. This is not a TZif file, so it should be ignored.
2017-06-29 10:07:35 -04:00
Howard Hinnant
090b66beb8
Update README.md
2017-06-27 22:22:58 -04:00
Howard Hinnant
791de2d9fc
Update README.md
2017-06-27 22:22:09 -04:00
Howard Hinnant
77a703afe2
Update to point to current standards proposal and R4 draft
2017-06-27 22:19:58 -04:00
Howard Hinnant
bee4f27d4a
Correct problems with load_timezone_mappings_from_xml_file
...
* Move outside of HAS_REMOTE_API.
* Ignore non-empty lines full of white space.
2017-06-26 22:03:01 -04:00
Howard Hinnant
56cec17500
Add gratuitous zoned_time:: qualifier to operators
...
* VS-2017 compatibility.
2017-06-26 21:33:34 -04:00
Howard Hinnant
d359399090
Give zoned_time a default constructor
2017-06-26 21:19:29 -04:00
Howard Hinnant
a003ad28fa
Make wide string literals in to_stream
v2.2
2017-06-17 13:18:40 -04:00
Howard Hinnant
012f2c6135
Make to_stream and from_stream return a stream reference
2017-06-17 13:11:39 -04:00
Howard Hinnant
edcd9bd9c1
define MISSING_LEAP_SECONDS 0 when !USE_OS_TZDB
2017-06-16 15:55:43 -04:00
Howard Hinnant
9f0d511be6
Put up draft of D0355R3
2017-06-16 13:26:40 -04:00
Howard Hinnant
ccd857ff6d
Add Alloc parameter to basic_string in two places
2017-06-16 13:23:41 -04:00
Howard Hinnant
88890939d5
Add zone1970.tab to the list of files
...
that should be ignored by init_tzdb() under USE_OS_TZDB.
2017-06-14 20:48:19 -04:00
Howard Hinnant
1139c9b64f
Allow zoned_time with coarser precision than seconds
...
* This gives greater interoperability with the deduction for class
templates language feature.
* time_points output from zoned_time still have at least seconds
precision.
2017-06-13 23:00:54 -04:00
Howard Hinnant
ec412a1de0
Set failbit instead of throw within to_stream
...
* This is for consistency with other std streaming operations.
2017-06-12 21:01:58 -04:00
Howard Hinnant
aa4dafcc46
Silence sign conversion warnings
2017-06-12 13:33:47 -04:00
Howard Hinnant
cc81c9ea50
Fix minor problems for g++:
...
* Add missing #include <string>
* Explicitly convert sys_days to sys_seconds in conditional operator
2017-06-12 09:44:41 -04:00
Howard Hinnant
a610f087c1
Add support for the zic-compiled OS-supplied time zone DB:
...
* Avoids the need to download the IANA database.
* Heavily based on contributions by Aaron Bishop.
* Turn on with -DUSE_OS_TZDB, off by default.
* Not supported on Windows.
* Disables HAS_REMOTE_API.
* get_tzdb().version only supported on Apple. This string has
the value "unknown" elsewhere.
* Leap second support is missing on Apple, and may not be on your
platform either (please report). Leap second support is enabled,
disabled with -DMISSING_LEAP_SECONDS.
Without leap second support, utc_time, tai_time, and gps_time (and
those clocks) are not available.
* On Apple, time zone transitions are only supported in the range:
1901-12-13 20:45:52 to 2038-01-19 03:14:07
* On Linux, time zone transitions are only as far in the future as
the OS-provided transitions go. There is no support for POSIX-
style transitions.
2017-06-04 21:04:53 -04:00
Howard Hinnant
5132385454
Remove obsolete LAZY_INIT flag.
2017-06-04 20:32:37 -04:00
Howard Hinnant
5c38ad84e8
Eliminate TIMEZONE_MAPPING by making it equivalent to _WIN32.
...
* Clean up indenting and whitespace.
* No functionality changes intended.
2017-06-04 20:32:37 -04:00
Howard Hinnant
8b743db4b6
Reorganize readme
2017-05-31 20:49:51 -04:00
Howard Hinnant
9c9ddeba37
Work around EDG 4.11 front end bug.
2017-05-21 13:41:31 -04:00
Howard Hinnant
0fb3921e5b
Fail if you need a valid year and don't parse one.
2017-05-20 23:04:49 -04:00
Tullio Menga
83c8b4d522
changes for compatibility with Clang with Microsoft CodeGen (v140_clang_c2):
...
- added date:: namespace to flloor() and abs() calls
- added IUnknown forward declaration before including Windows headers to prevent issue with objbase.h
- minor changes
2017-05-08 10:04:20 -04:00
Howard Hinnant
f493bd67f2
Tweak white space parsing rules (again):
...
* White space matches zero or more white space characters.
* %n matches one white space character.
* %t matches zero or one white space characters.
2017-05-07 15:25:07 -04:00
Howard Hinnant
cf0481b9af
Reset command, width and modified for %n and %t in from_stream.
2017-05-04 21:03:48 -04:00
Howard Hinnant
f57432d7b4
Don't skip white space by default in from_stream.
...
* Put a space at the beginning of your
format string to recover this behavior.
2017-05-04 14:47:28 -04:00
Howard Hinnant
e8f0dca452
Fix type-o in to_stream duration overload.
2017-05-04 10:04:17 -04:00
Tomi Valkeinen
44f6dfc58e
fix compile warning about unused get_download_gz_file()
...
get_download_gz_file() is not used when HAS_REMOTE_API=0, and causes:
warning: 'std::__cxx11::string date::get_download_gz_file(const string&)' defined but not used [-Wunused-function]
Wrap get_download_gz_file() inside #ifdef to remove the warning.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
2017-05-02 20:10:44 -04:00
Jaak Ristioja
ec7db09085
Use system_error instead of strerror_r:
...
* Addresses portability issues.
2017-05-02 20:10:44 -04:00
Howard Hinnant
cb83bc2501
Update README.md
2017-04-24 16:46:58 -04:00
Howard Hinnant
faec35eaf1
Update README.md
2017-04-23 12:49:22 -04:00
Howard Hinnant
20efec5b16
Update README.md
2017-04-23 12:48:06 -04:00
Howard Hinnant
b2dc8b1f6e
Tweak getTimeZoneKeyName():
...
* for systems that return "Coordinated Universal Time".
* return "UTC" instead.
2017-04-18 20:48:28 -04:00
Howard Hinnant
2f8997d3ed
Make parse fail if fmt string is not completely consumed.
2017-04-18 12:02:21 -04:00
Howard Hinnant
c64d69b1e1
Avoid getting localized time zone names from Windows OS.
...
* Use GetDynamicTimeZoneInformation to get .TimeZoneKeyName
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724318(v=vs.85).aspx
> Retrieves the current time zone and dynamic daylight saving time settings.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724253(v=vs.85).aspx
> The name of the time zone registry key on the local computer.
* This avoids the need to map from StandardName to TimeZoneKeyName.
* Using .DynamicDaylightTimeDisabled = true forces the OS to return a
non-daylight saving time result.
* Use of wcstombs is preferred over wstring_convert as the latter is now
deprecated in C++17 because the implementors could not interpret the
specification.
2017-04-17 19:06:58 -04:00
gm
885910375f
Fix pragma warnings. Displayed at least by MSVC.
2017-04-16 23:53:37 +12:00
Howard Hinnant
d15491103b
Move chrono_io.h functionality into date.h.
2017-04-13 21:01:47 -04:00
Howard Hinnant
05db422ca9
Respect width and padding in "chrono_io.h"
2017-04-13 18:02:26 -04:00
Howard Hinnant
2c094f5559
Restrict parse of %Z to valid timezone names and abbrev.
2017-04-13 14:09:14 -04:00
Howard Hinnant
096bad2622
Parse should fail if fmt string is not consumed.
2017-04-13 12:45:28 -04:00
Howard Hinnant
fc3d4d97fe
Silence unused variable 'leaps' warning
2017-04-13 12:44:21 -04:00
Howard Hinnant
4f27361378
Add range checking for the time-of-day fields during parse.
...
* Also refactor the leap-second logic used in utc_time.
2017-04-07 18:52:09 -04:00
Jan Kratochvil
a4eef8e20c
Fix gcc -O -D_FORTIFY_SOURCE.
2017-04-03 20:46:36 -04:00
Jan Kratochvil
1fd0806757
Fix -Wshadow for gcc and clang.
2017-04-03 20:46:36 -04:00