47 Commits

Author SHA1 Message Date
Howard Hinnant
3e25bd45f7 Clean up includes
Alphabetize and survey for missing and unneeded includes.
2016-08-27 14:18:46 -04:00
Howard Hinnant
ebc20c139b Move formatting and parsing
Moved formatting and parsing of sys_time and local_time from tz.h to
date.h in order to make this functionality available to a wider
audience.  Existing code does not need to change.  But future code
can #include "date.h" instead of "tz.h" and need not compile tz.cpp nor
link to curl.

Formatting zoned_time remains in tz.h.
2016-08-24 20:54:24 -04:00
Howard Hinnant
952857e721 Correct type-o in error message 2016-08-14 20:35:22 -04:00
Howard Hinnant
0663b7aeb3 Allow only one decimal point to be read under "%Ez". 2016-08-09 23:23:55 -04:00
Howard Hinnant
77435397cb Handle fractional seconds and offsets better. 2016-08-08 18:25:17 -04:00
Pavel
52e2a0b2cf Prevent warnings when using -Wundef flag 2016-07-04 11:14:59 -04:00
Howard Hinnant
7331f36318 Enable the converting constructor to actually work. 2016-06-27 22:23:58 -04:00
Howard Hinnant
33cdfc6485 Fix bug in formatting zoned_times produced by ambiguous local times. 2016-06-24 20:33:40 -04:00
Howard Hinnant
ffb876afa6 Fix bug in format 2016-06-17 20:39:07 -04:00
gm
55087c6cbd HAS_REMOTE_API support for Windows. Adds support for MingW too.
* HAS_REMOTE_API still defaults to 0
* When HAS_REMOTE_API=0 only libraries advapi32.lib, ole32.lib and shell32.lib are required.
* Setting HAS_REMOTE_API=1 requires curl: https://curl.haxx.se/libcurl/
*- Also need to manually install 7-Zip (http://www.7-zip.org).
*- Will automatically install Tinyxml2 (http://www.grinninglizard.com/tinyxml2/).
*- Will automatically install http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml
2016-06-16 22:03:12 -04:00
Howard Hinnant
b38d20e126 Replace some chrono literals for C++11 compatibility. 2016-06-09 22:02:26 -04:00
Howard Hinnant
8f5e5e4110 Add convenience converts among sys_time, utc_time, tai_time, and gps_time. 2016-06-08 20:49:19 -04:00
Howard Hinnant
ce4ceb6e9d Add tai_clock and gps_clock. 2016-06-07 20:03:40 -04:00
Howard Hinnant
f44e692540 Add streaming inserter for utc_time.
* Fix bug in utc_to_sys.
2016-06-06 21:05:43 -04:00
gm
7e66cb2e83 Improve cross platform support.
Make validate work for C++11 because the library supports it.
Fix an unused variable mistake i made earlier.
Make constructor public, seems it should be. Possible compiler bug?
2016-06-04 13:38:50 -04:00
Howard Hinnant
09cf3bba8d Create %Ez & %Oz to put ':' in offset for format and parse. 2016-06-04 13:36:40 -04:00
Howard Hinnant
ea2d0d3357 constexpr more stuff and clean up whitespace 2016-05-30 22:09:21 -04:00
Howard Hinnant
76bef1fe01 Support wide streams 2016-05-29 00:15:33 -04:00
Howard Hinnant
f60f61201c Rename Leap to leap 2016-05-28 20:27:02 -04:00
Howard Hinnant
b0a23f2cff Rename Link to link 2016-05-28 20:20:28 -04:00
Howard Hinnant
67c31d794e Protect undocumented constructors 2016-05-28 14:09:46 -04:00
Howard Hinnant
963f4dd80e Add more options to the parse functionality. 2016-05-22 12:28:47 -04:00
Howard Hinnant
76c906d779 Get off of day_point 2016-05-21 10:24:25 -04:00
Howard Hinnant
823176c1ea Polish formatting, parsing and utc_time. 2016-05-15 22:45:51 -04:00
Howard Hinnant
8fc76f618e minor fixes in format and parse 2016-05-09 10:45:35 -04:00
Howard Hinnant
f5f0f80778 Get rid of tz. Hide unnecessary API. Clean up get_info 2016-05-08 22:59:39 -04:00
Howard Hinnant
b1d507df79 Optimize zoned_time streaming operator 2016-05-06 22:48:36 -04:00
Howard Hinnant
4e2a7ac05b zoned_time with durations coarser than seconds are too error prone. 2016-05-05 22:41:26 -04:00
Howard Hinnant
1e5d2fa8dd Create local and system time types for timezone functions.
* Add sys_time.
* Add sys_days.
* Add sys_seconds.
* Add local_time.
* Add local_days.
* Add local_seconds.
* Rename day_point to sys_days.
* Rename Zone to time_zone.
2016-05-03 23:19:09 -04:00
Howard Hinnant
95271f8337 Minor fixes 2016-04-21 16:21:01 -04:00
Howard Hinnant
70f7d52f88 Enable %Z parsing 2016-04-09 16:04:00 -04:00
Howard Hinnant
cd79376546 Add remote API and auto-download of tzdata. 2016-04-09 14:07:19 -04:00
Howard Hinnant
e79634f61d Optimize initialization of tz database
* Defer expensive parts of the initialization
* The deferment can be turned off with -DLAZY_INIT=0
2016-04-05 16:33:20 -07:00
Howard Hinnant
e8f95dddb7 Add format and parse functionality. 2016-04-03 18:57:02 -04:00
tomy2105
644291ce1b Fixing tabs
Fixing leading tabs from previous commit.
2016-03-15 14:29:26 +01:00
tomy2105
7360d68eb7 Fixing default VS2013 "default"s
Fixing VS2013 versions of "default" move constructor and assignment
operator
2016-03-15 14:21:50 +01:00
Howard Hinnant
5acaffc2b3 Add timezone db version and misc cleanup 2016-01-27 20:34:48 -05:00
ivanp2015
50802176f3 TZ stuff fixed for VS2013 2015-11-29 07:56:59 +02:00
Howard Hinnant
db9f0d19ba Make Zone move-only 2015-11-03 20:01:12 -05:00
Howard Hinnant
f19e7f22c7 Fix overflow in Zone::to_sys_impl when input precision is too fine. 2015-11-03 19:47:03 -05:00
gm
635ec55065 Throw a runtime error if the install folder does not exist.
Replace my accidental use of NULL with nullptr.
Improve some comments.
2015-09-27 20:55:55 +13:00
Howard Hinnant
999dfc4b37 Change to MIT copyright
* Added unicode copyright to CLDR-derived mapping.
2015-08-08 17:03:43 -04:00
Howard Hinnant
33f923b508 Rename seconds_point to second_point for consistency with day_point. 2015-08-08 13:20:12 -04:00
Howard Hinnant
0d0841f5b8 Rename current_timezone() to current_zone():
* Better symmetry with locate_zone(name).
2015-08-08 13:06:04 -04:00
gm
c21e392c81 Initial Win32 support.
This library now compiles on Windows but requires VS2015 for Windows.
VS2013 may work but this has not been tested yet.
Requires NOMINMAX to be defined to avoid clashes with the Windows.h
headers and the C++ stl and this libraries Date max functions.
Also known to work equivalently with recent g++ and mingw combinations
but -std=C++14 flag should be set.
C++14 restrictions may be relaxed later. Patches welcome!
g++ 5.1 was tested. It may work with other version but that hasn't been tried.
Mac OS and Linux systems are known to compile with -std=c++11
current_timezone and locate_zone will return iana names not windows
time zone names. This is expected and as designed.
2015-08-06 23:16:03 -04:00
Howard Hinnant
9858887551 Correct some silly spelling errors. 2015-07-18 18:58:48 -04:00
Howard Hinnant
796448e4ad Initial commit 2015-07-17 22:30:53 -04:00