All Projects â†’ HowardHinnant â†’ Date

HowardHinnant / Date

Licence: other
A date and time library based on the C++11/14/17 <chrono> header

Programming Languages

C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to Date

nepali-datetime
Python's core datetime inspired nepali datetime (BS date & NPT) package 🇳🇵
Stars: ✭ 36 (-98.49%)
Mutual labels:  time, datetime, date, calendar, timezone
Time
Building a better date/time library for Swift
Stars: ✭ 1,983 (-16.99%)
Mutual labels:  time, date, datetime, timezone, calendar
Laydate
layDate(日期与时间组件) 是 layui 独立维护的三大组件之一
Stars: ✭ 1,066 (-55.38%)
Mutual labels:  time, date, datetime, calendar
hs-hourglass
efficient and simpler time API for haskell
Stars: ✭ 43 (-98.2%)
Mutual labels:  time, datetime, date, timezone
Luatz
Time, Date and Timezone library for lua
Stars: ✭ 92 (-96.15%)
Mutual labels:  time, date, datetime, timezone
Dpicker
A framework-agnostic minimal date picker
Stars: ✭ 187 (-92.17%)
Mutual labels:  time, date, datetime, calendar
shamsi date
A Flutter and Dart package for using Jalali (Shamsi, Solar, Persian or Jalaali) calendar. You can convert, format and manipulate Jalali and Gregorian (Miladi) date and times.
Stars: ✭ 59 (-97.53%)
Mutual labels:  time, datetime, date, calendar
Tail.datetime
A lightweight, translat- and configurable Open Source DateTime Picker, written in pure vanilla JavaScript!
Stars: ✭ 139 (-94.18%)
Mutual labels:  time, date, datetime, calendar
React Datetime Picker
A datetime picker for your React app.
Stars: ✭ 294 (-87.69%)
Mutual labels:  time, date, datetime, calendar
Angular Moment Picker
Angular Moment Picker is an AngularJS directive for date and time picker using Moment.js.
Stars: ✭ 536 (-77.56%)
Mutual labels:  time, date, datetime, calendar
Period
PHP's time range API
Stars: ✭ 616 (-74.22%)
Mutual labels:  time, date, datetime, calendar
Calendar
📅 PHP Date & Time library that solves common problems in object oriented, immutable way.
Stars: ✭ 113 (-95.27%)
Mutual labels:  time, date, datetime, calendar
Delorean
Delorean: Time Travel Made Easy
Stars: ✭ 1,793 (-24.95%)
Mutual labels:  time, date, datetime, timezone
Iso8601
Ruby parser to work with ISO8601 dateTimes and durations — http://en.wikipedia.org/wiki/ISO_8601
Stars: ✭ 70 (-97.07%)
Mutual labels:  time, date, datetime
When
A natural language date/time parser with pluggable rules
Stars: ✭ 1,113 (-53.41%)
Mutual labels:  time, date, datetime
Carbon
A simple PHP API extension for DateTime
Stars: ✭ 75 (-96.86%)
Mutual labels:  time, date, datetime
Timezone Support
Lightweight time zone support for your applications or other date libraries.
Stars: ✭ 90 (-96.23%)
Mutual labels:  time, date, timezone
Graphql Java Datetime
GraphQL ISO Date is a set of RFC 3339 compliant date/time scalar types to be used with graphql-java.
Stars: ✭ 89 (-96.27%)
Mutual labels:  time, date, datetime
Js Joda
🕑 Immutable date and time library for javascript
Stars: ✭ 1,298 (-45.67%)
Mutual labels:  time, date, timezone
Zulu
A drop-in replacement for native Python datetimes that embraces UTC.
Stars: ✭ 52 (-97.82%)
Mutual labels:  time, date, datetime

Date

Build Status Join the chat at https://gitter.im/HowardHinnant/date


Try it out on wandbox!

Summary

This is actually several separate C++11/C++14/C++17 libraries:

  1. "date.h" is a header-only library which builds upon <chrono>. It adds some new duration types, and new time_point types. It also adds "field" types such as year_month_day which is a struct {year, month, day}. And it provides convenient means to convert between the "field" types and the time_point types.

  2. "tz.h" / "tz.cpp" are a timezone library built on top of the "date.h" library. This timezone library is a complete parser of the IANA timezone database. It provides for an easy way to access all of the data in this database, using the types from "date.h" and <chrono>. The IANA database also includes data on leap seconds, and this library provides utilities to compute with that information as well.

  3. "iso_week.h" is a header-only library built on top of the "date.h" library which implements the ISO week date calendar.

  4. "julian.h" is a header-only library built on top of the "date.h" library which implements a proleptic Julian calendar which is fully interoperable with everything above.

  5. "islamic.h" is a header-only library built on top of the "date.h" library which implements a proleptic Islamic calendar which is fully interoperable with everything above.

Standardization

Slightly modified versions of "date.h" and "tz.h" were voted into the C++20 working draft at the Jacksonville FL meeting on 2018-03-17:

Build & Test

The recommended way to use any of these libraries besides "tz.h" is to just include it. These are header-only libraries (except "tz.h").

To use "tz.h", there is a single source file (src/tz.cpp) that needs to be compiled. Here are the recommended directions: https://howardhinnant.github.io/date/tz.html#Installation.

One can run tests by cd'ing into the test subdirectory and running testit. There are known failures on all platforms except for macOS. And even on macOS if C++11 is used. If any of these failures present problems for you, there exist workarounds.

Additionally there is unsupported support for vcpkg and CMake. I don't personally use or maintain these systems as for me they cause more problems than they solve (for this small project). If you would like to contribute to these build systems please feel free to file a PR.

You can download and install Date using the vcpkg dependency manager:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
vcpkg install date

The Date port in vcpkg is updated by Microsoft team members and community contributors. If the version falls behind, please create an issue or pull request on the vcpkg repository.

You can optionally build using CMake. Here is a guide of how to build and test using the CMake Makefile generator.

mkdir build
cd build
cmake -DENABLE_DATE_TESTING=ON -DBUILD_TZ_LIB=ON ../
cmake --build . --target testit # Consider '-- -j4' for multithreading

Projects using this library

If you would like your project (or product) on this list, just let me know.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].