Coder Social home page Coder Social logo

swiftdate's Introduction

SwiftDate

Carthage compatible CI Status Version License Platform

We really ♥ Swift and we think that dates and timezones management should be painless: this is the reason we made SwiftDate, probably the best way to manage date and time in Swift.

Choose SwiftDate for your next project, or migrate over your existing projects—you'll be happy you did!

★★ Star our github repository to help us! ★★

Created by Daniele Margutti (@danielemargutti)

Main features

Here's a highlight of the main features you can find in SwiftDate:

  • Simple math operations with dates! Example: aDate + 2.weeks + 1.hour or (1.year - 2.hours + 16.minutes).fromNow()
  • Easy conversions to and from timezone, locale and calendar. Use the helper class DateInRegion and perform conversions with components and operations!
  • Compare dates with math operators <,>,==,<=,>=. For example, you can do aDate1 >= aDate2 or aDate1.isIn(anotherDate,.day)
  • Easily work with time components. E.g. aDateInRegion.day or hour, minutes etc. expressed in your favourite timezone!
  • Easy and optimized way to get and transform a date from and to strings: supports both colloquial (human readable) and fixed formats (ISO8601, AltRSS, RSS, Extended, .NET and custom string as per Unicode standard)
  • Express time interval in other time units; for example 120.seconds.in(.minutes) // 2 minutes
  • Many shortcuts to get intervals, work with time units, intervals and common date operations (isYesterday,isTomorrow,isBefore()...)
  • ... many many other shiny things!

You also may like

Do you like SwiftDate? I'm also working on several other opensource libraries.

Take a look here:

  • Hydra - Promises & Await/Async in Swift - Write better async code in Swift
  • SwiftLocation - CoreLocation and Beacon Monitoring on steroid!
  • SwiftRichString - Elegant and painless attributed string in Swift
  • SwiftScanner - String scanner in pure Swift with full unicode support
  • SwiftSimplify - Tiny high-performance Swift Polyline Simplification Library
  • SwiftMsgPack - MsgPack Encoder/Decoder in Swit

How to get started

Documentation

Code is documented for Xcode, so you can use the built-in documentation panel to learn more about the library.

You can also generate the latest documentation using Jazzy; install Jazzy via gem install jazzy then, from terminal, move to the /SwiftDate folder and type jazzy -c jazzy.yaml. Documentation will be generated in docs folder.

Communication

Current Release

Latest release is: 4.1.7 Download here.

A complete list of changes for each release is available in the CHANGELOG file.

Help Us!

Currently we need translations for SwiftDate.bundle. Help us with a pull request!

Currently SwiftDate supports:

Make a pull request and add your language!

Installation

SwiftDate supports multiple methods for installing the library in a project.

Installation with CocoaPods

CocoaPods is a dependency manager for Objective-C, which automates and simplifies the process of using 3rd-party libraries like SwiftDate in your projects. You can install it with the following command:

$ gem install cocoapods

CocoaPods 1.0.1+ is required to build SwiftDate 4+ (along with Swift 3 and Xcode 8).

Podfile

To integrate SwiftDate into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

target 'TargetName' do
  use_frameworks!
  pod 'SwiftDate', '~> 4.0'
end

(use 4.0.13 for Swift 3.0)

Then, run the following command:

$ pod install

Installation with Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate SwiftDate into your Xcode project using Carthage, specify it in your Cartfile:

github "malcommac/SwiftDate" ~> 4.0

Run carthage to build the framework and drag the built SwiftDate.framework into your Xcode project.

Requirements

Current version is compatible with:

  • Swift 3.1 (4.0.13 is the latest version compatibile with Swift 3)
  • iOS 8 or later
  • macOS 10.10 or later
  • watchOS 2.0 or later
  • tvOS 9.0 or later
  • ...and virtually any platform which is compatible with Swift 3 and implements the Swift Foundation Library

Are you searching for an old (unsupported) SwiftDate version? Check out:

  • Swift 3.0: The latest version compatible is 4.0.13
  • Swift 2.3 Branch
  • Swift 2.2: The latest version compatible is 3.0.8

Credits & License

SwiftDate is owned and maintained by Daniele Margutti along with main contributions of Jeroen Houtzager.

As open source creation any help is welcome!

The code of this library is licensed under MIT License; you can use it in commercial products without any limitation.

The only requirement is to add a line in your Credits/About section with the text below:

Date and Time Management is provided by SwiftDate - http://www.swift-date.com
Created by Daniele Margutti and licensed under MIT License.

Your App and SwiftDate

We are interested in making a list of all projects which use this library. Feel free to open an Issue on GitHub with the name and links of your project; we'll add it to this site.

swiftdate's People

Contributors

akuraru avatar alfulayt avatar bitomule avatar codingrhythm avatar ehuynh avatar fhisa avatar hout avatar ilandbt avatar ipedro avatar kisukpark avatar knao124 avatar malcommac avatar marknorgren avatar maximusmccann avatar migue1s avatar mrichtsfeld avatar nebulafox avatar nikhilsh avatar onekiloparsec avatar pedrovieira avatar pettomartino avatar raven avatar rbukovansky avatar rynecheow avatar simonrice avatar stormxx avatar suprie avatar toriaezunama avatar tskulbru avatar ya-s-u avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.