Skip to content

Latest commit

 

History

History
484 lines (368 loc) · 26.3 KB

CHANGELOG.md

File metadata and controls

484 lines (368 loc) · 26.3 KB

SwiftDate

Carthage compatible CI Status Version License Platform

CHANGELOG


  • Release Date: 2017-12-09

  • Zipped Version: Download 4.5.1

  • #509 Added Polish language (thanks to Grzegorz Krukowski)

  • #511 TimeInterval's in() function now alert when extracting calendar specific components without setting a reference date.

  • #512 Fixed imminentRange behaviour for colloquial formatter


  • Release Date: 2017-11-26

  • Zipped Version: Download 4.5.0

  • #495 Added Thai language (thanks to Thanakrit Weekhamchai)

  • #492 Introduced a new ColloquialDateFormatter class

  • #503 Added isBetween to check if a date is inside a given dates range with passed granularity.

  • #505 Exposed reference date for in() function of TimeInterval. If specified conversion of the interval is aware of daylight saving time and calendar's specific dates; when not specified absolute conversion still available (only for .day,.hour,.minute,.second components).


  • Release Date: 2017-11-26

  • Zipped Version: Download 4.4.2

  • #495 Added Persian language

  • #489 Disabled LLV Code Coverage scheme

  • #494 Removed String.characters warning from Swift 3.x

  • #487 Fixed a regression with rangeAt instead of range(at) from Swift 3.x)


  • Release Date: 2017-09-14

  • Zipped Version: Download 4.4.1

  • #483 Fix for NSRange error under XCode9 and 4.4.0 release


  • Release Date: 2017-09-14

  • Zipped Version for Swift 3: Download 4.3.0

  • Zipped Version for Swift 4: Download 4.4.0

  • #480 Fix for '-' operator both in Date and DateInRegion classes where the result is correctly reported.

  • #476 Added Russian translation thanks to roor



  • Release Date: 2017-09-03

  • Zipped Version: Download 4.1.10

  • #472 CalendarName now supports RawRepresentable protocol

  • #459 Fixed an issue with translation of Dutch locale

  • #463 colloquial...() functions now fallback to timeComponents... functions when style is set to an abbreviated form (ie to return 1h)

  • #464 Fixed unit tests for ISO8501

  • #461 Fixed translation for Slovak locale

  • #470 Added Azerbaijani Latin locale (thanks to @elshad)

  • #468 Fixed an issue with negative intervals in DateTimeInterval (regression from previous release)


New Features

  • #449 Added nextMonth(), prevMonth(), nextWeek() and prevWeek(). All of these functions accepts a TimeReference params which allows to specify how the date should be returned (at the start or end of time component, or leave calculation unaltered).

Fixes

  • #449 Deprecated nextMonth and prevMonth of both Date and DateInRegion. You can use the func with the same name.
  • #455 ISO8601 Parser now correctly handles milliseconds value from an ISO8601 date string.
  • #450 Fixes for translation fallback when no locale region is available (ie. fallback to ar when no ar-SA is available; final fallback still on en).

New Features

  • #446 Added Hungarian support (thanks to @iKiKi)

Fixes

  • #445 Fixed an issue which causes wrong results while using algebra operations with time components.

New Features

  • #423 Added firstWeekday to Region struct. This allows you to easily change the first day of a week on given Region's Calendar object. By default the value is set sunday.

Fixes

  • #425 Fixed an issue with .dates(between:and) which sometimes may report as final date of the output array date greater than specified end date.
  • #417 Fixed an issue with colloquial functions which return wrong results when differences can be expressed in days.
  • #419 Fixed an issue with colloquial functions which return wrong results when differences can be expressed in days.
  • #427 Fixed an issue with .NET date parser (it now accounts timezone correctly and parser did not fail with < 1970 dates)

New Features

  • #408 Date and DateInRegion has now two functions to round a date to certain interval (expressed in seconds or minutes). DateInRegion exposes roundAt() which directly modify the date itself; Date, as immutable object, exposes the same feature in roundedAt() function (which return a new Date instances).
  • #414 Added Daylight Saving Time functions: .isDST in DateInRegion (it returns true if the date uses daylight saving time); .DSTOffset in DateInRegion (it returns the value (in seconds) of the daylight saving time offset of the represented date), . nextDSTTransitionDate in DateInRegion (it returns the next daylight saving time transition after currently represented date when expressed); nextDSTTransitionDate() func in Date (it returns the next dst transition date when receiver is expressed in a particular timezone); DSTOffset() func in Date (it returns the offset of daylight saving time when receiver is expressed in a particular timezone); isDST() func in Date (it returns if receiver date uses daylight saving time when expressed in a particular timezone).

Fixes

  • #410 Several fixes while parsing less common ISO8601 formats (weeks only w/wo implicit year/month/day).
  • #411 Parsing an ISO8601 string now results in a DateInRegion which contains the correct timezone defined (Date instances are now converted automatically to be time-independent).
  • #412 Updated Unit Tests to become compatible with the new APIs changes. All tests now passes.
  • #409 Fixed an issue converting a difference between two dates when its more than 24 hours, but less than 48 hours (incorrectly the colloquial values returns 'yesterday')
  • #413 Single framework target in XCode Project (iOS, macOS, tvOS and watchOS)

New Features

  • #402 Added Greek localization (thanks to @dimmdesign)

  • #399 colloquialSinceNow also allows to set unitsStyle params to specify the type of values you want to print.

  • #400 DateInRegion has a class func named date(formats:fromRegion) which allows parsing a single string with multiple formats (the first one that succeeds returns the instance of the DateInRegion). Also available as String extension (with the same name).

  • #223 ISO8601DateTimeFormatter now recognize the timezone of an ISO string and create a date with the correct value.

  • #407 SwiftDate now can parse ISO8601 strings without specifyng the ISO format; it evaluates the best format automatically. Also the parser faster than the previous built one. Since now .iso8601 parsing format is used only as formatter (from date to string, viceversa any given value is ignored. You are encouraged to use .iso8601Auto instead).

    The following ISO8601 variants are supported:

YYYYMMDD
YYYY-MM-DD
YYYY-MM
YYYY
YY //century 

IMPLIED CENTURY: YY is 00-99

YYMMDD
YY-MM-DD
-YYMM
-YY-MM
-YY

IMPLIED YEAR

--MMDD
--MM-DD
--MM

IMPLIED YEAR AND MONTH

---DD

ORDINAL DATES: DDD IS THE NUMBER OF THE DAY IN THE YEAR (1-366)

YYYYDDD
YYYY-DDD
YYDDD
YY-DDD
-DDD

WEEK-BASED DATES: ww IS THE NUMBER OF THE WEEK, AND d IS THE NUMBER (1-7) OF THE DAY IN THE WEEK

yyyyWwwd
yyyy-Www-d
yyyyWww
yyyy-Www
yyWwwd
yy-Www-d
yyWww
yy-Www

YEAR OF THE IMPLIED DECADE

-yWwwd
-y-Www-d
-yWww
-y-Www

WEEK AND DAY OF IMPLIED YEAR

-Wwwd
-Www-d

WEEK ONLY OF IMPLIED YEAR

-Www

DAY ONLY OF IMPLIED WEEK

-W-d

Fixes

  • #405 Fixed some translation issues in Swedish (thanks to @deville)
  • #368 Deprecated at(unitsWithValues dict: [Calendar.Component : Int]) in Date and DateInRegion and replaced with functional at(values: [Calendar.Component : Int], keep: Set<Calendar.Component>)
  • #392 Fixed an issue with report negative interval when making operation with dates a and b where a - b < 0 iff a < b.
  • #397 Fixed an issue with colloquial func which report wrong difference of 1 day when two dates are distant < 24h but in two different days.


New Features

  • #384 Added Arabic translation (thanks to @abdualrhmanIO)
  • #356 Added a new formatter option called strict. Using strict instead of custom disable heuristics date guessing of the formatter (ie. 1999-02-31 become an invalid date to parse, while with heuristics enabled guessing date 1999-03-03 is returned instead).

Fixes

  • #372 Fix for Local.collatorIdentifier (Returns zh-hans-CN and zh-hant-CN)
  • #374 DateZeroBehavior options are now public outside the library

New Features

  • #379 Added Hebrew translation (thanks to @ilandbt)
  • #376 Added Swedish translation (thanks to @traneHead)
  • #381 Replaced useImminentInterval in DateInRegionFormatter with a configurable value called imminentInterval. With a default value of 5 it fallback to just now version. If nil fallback is disabled.
  • #380 DateInRegionFormatter is now able to load custom localization both from LocaleName and custom .strings files (just set the formatter.localization = Localization(path: [PATH_TO_YOUR_STRINGS_FILE])

Fixes

  • #370 Cannot format colloquial date when a time component value is zero and allowedComponents does not contains lower time components (ie. cannot print "today" when set formatter to accept only allowedComponents = [.day] and day difference between dates is zero).
  • #371 DateInRegionFormatter crashes with any non-default .allowedComponents.

New Features

  • #365 Brazilian Portuguese support (thanks to @ipedro)

Fixes

  • #364 Fixes Japanaese translation

New Features

  • #353 Timezone, region and locale are now public accessible from Region (read-only)
  • #354 Added Vietnamese translation (thanks to @solbadguyky)
  • #355 Added Japanese translation (thanks to @bati668)
  • #360 Catalan translation

Fixes

  • #359 Wrong colloquial string ("just now") when gap between two dates are expressed in minutes and the left comparing operand is a future date.
  • #349 Fixed an issue with ISO8601Formatter where we need to manually set the locale to "en_US_POSIX" in order to get correct results (ie. in 12/24h cases).
  • #350 Fixed relevant time formatting for Danish translation
  • #358 Missing German translation strings are now added.
  • #361 Minor fixes for unit test reports
  • #362 Added tests for iSO8601 formatter with .internetDateTimeExtended.
  • #363 Fallback to main language code when language code + region code is not available (ie. "fr-BE" fall in "fr-FR").

New Features

  • #214, Added .next(day:) both for Date and DateInRegion to get the next weekday (ie. "next friday from today") after specified date.
  • #310 Added static func .dates(between:and:increment:) both for Date and DateInRegion which allows to enumerate dates between two interval with given increment in term of DateComponents.
  • #337 DateComponents now implements .in() func you can use to express an interval (like using TimeInterval) in terms of other time units (for example let x = 120.seconds.in(.minute) will return 2 minutes).
  • #348 DateComponents can now be merged using && operator. So if you have A = 1.hours, 3.minutes, 2.seconds and B = 1.year, 40.minutes, using let C = A && B you will get a new DateComponents instance with: C = 1.year, 1.hours, 43.minutes, 2.seconds.
  • #340, #320 Added Spanish support (thanks to @Sepho and @adrimarti).
  • #323, Added Korean support (thanks to @KisukPark).
  • #328, Added Slovak support (thanks to @beretis).
  • #329, Added Danish support (thanks to @emilpedersen).
  • #331, Added Czech support (thanks to @rbukovansky).
  • #187, Added .startWeek (get the first day of the sender's week) and .endWeek (get the last day of the sender's week) both for Date and DateInRegion

Fixes:

  • #344 .inDateDefaultRegion() is also used as standard value for region in .add() function of the Date object
  • #339 Fixed an issue with reverse interval fatal error when subtracting two dates
  • #317 Fixed an issue with language transations. Now all translations are specified in term of language+region settings (ie. en-US and not only en). All translation files were updated to reflect this new behaviour.
  • #346 Workaround to fix a rounding problem when comparing two Date or DateInRegion in terms of .nanosecond granularity. Now the comparision result is correct.
  • #315, Fixed an issue with Date().add(components:) and daylight saving dates.
  • #319, Added missing translation for german loc (thanks to @jaweinkauff)

Release Date: 2012/12/20 Zipped Version: Download

  • #306 Fixed a date ordering issue with time interval
  • #308 Added singular component for .year,.month,.day,.hour,.minute,.second time components
  • #309 Added Traditional Chinese support (thanks to @rynecheow)
  • #314 Restored French translation strings

  • #303 Date.defaultRegion() is now set to Region.Local() as specified in doc (not Region.GMT())
  • #302 Fixed an issue with colloquial dates and future dates; also fixed an issue when reporting colloquial differences expressed in weeks
  • #301 Add .locale property in ISO8601DateTimeFormatter

  • Release Date: 2012/10/10
  • Zipped Version: [Download 4.0.5]
  • #284 Fixed a crash with .colloquial() function and # weeks evaluation
  • #287 Added Simplified Chinese translation (thanks to @codingrhythm)
  • #288 Added Indonesian translation (thanks to @suprie)
  • #286 Added French translation (thanks to @pierrolivier)
  • #293 Added .withInternetDateTimeExtended as options of ISO8601DateTimeFormatter
  • #292 .setDefaultRegion and .defaultRegion are now static func/prop of the Date object

  • #277: Remove throws from Date.add(components:) in Date+Math.swift
  • #276: Remove Development team from framework

Changes:

  • #271: Added fallback to english translation when required translation is not available for colloquial functions
  • #112: Fixed an issue when optimization level is -fast
  • #269: Fixed unnecessary strings printed in console when using .timeComponents() function
  • #266: Removed unnecessary Region.copy() function
  • #267: .absoluteDate is now a public property for DateInRegion
  • #268: Added new german translation to SwiftDate.bundle
  • #272: Failed to calculate a colloquial date when diff in seconds = 0. It throw a .FailedToCalculate exception.
  • #274: Fixed a bug with padding in Time Components formatter. Now SwiftDate uses DateComponentsFormatter internally; old timeComponents/timeComponentsSinceNow (in Date and DateInRegion) are now deprecated (there are other functions with the same name which takes a ComponentsFormatterOptions struct as input). Also .string() function in TimeInterval is now replaced by a counterpart which take ComponentsFormatterOptions struct.
  • #275: .formatter.useSharedFormatters in DateInRegion is now accessible so, if strictly needed user can user a custom instance of DateTime Formatters per single DateInRegion.

  • Release Date: 2012/09/30

  • Zipped Version: Download 4.0.2

  • Minor fix for cocoapods compatibility (SwiftDate.bundle was not copied)

### SwiftDate 4.0.0 --- - **Release Date**: 2012/09/29 - **Zipped Version**: [Download 4.0.0](https://github.com/malcommac/SwiftDate/releases/tag/4.0.0)
  • Major rewrite, fully compatible with Swift 3.0
  • Function names and parameter now fully adopt Swift conventions (we should make a complete list of changes soon)
  • Various fixes with locale management and timezones
  • Web site and complete documentation
  • Jazzy support
  • Unit tests now compiles under XCode 8 and Swift 3