From 76ec0f34da58dac0a654735ac8acff3710ab2170 Mon Sep 17 00:00:00 2001 From: Daniel Drzimotta Date: Wed, 21 Jun 2017 11:10:00 -0600 Subject: [PATCH 1/2] Added optional parameter to convenience Date initializer to allow generating dates against a specific calendar. --- DateToolsSwift/DateTools/Date+Inits.swift | 14 ++++++++------ .../DateInitsExtensionTests.swift | 9 ++++++++- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/DateToolsSwift/DateTools/Date+Inits.swift b/DateToolsSwift/DateTools/Date+Inits.swift index e3d6f6db..c3a4d6dc 100644 --- a/DateToolsSwift/DateTools/Date+Inits.swift +++ b/DateToolsSwift/DateTools/Date+Inits.swift @@ -60,14 +60,16 @@ public extension Date { * - parameter dateString: Date in the formatting given by the format parameter * - parameter format: Format style using Apple's date formatting guide * - parameter timeZone: Time zone of date + * - parameter calendar: The calendar to generate the date against. By default it is the current calendar */ - public init(dateString: String, format: String, timeZone: TimeZone) { + public init(dateString: String, format: String, timeZone: TimeZone, calendar: Calendar = Calendar.current) { let dateFormatter = DateFormatter() - dateFormatter.dateStyle = .none; - dateFormatter.timeStyle = .none; - dateFormatter.timeZone = timeZone; - dateFormatter.dateFormat = format; - + dateFormatter.dateStyle = .none + dateFormatter.timeStyle = .none + dateFormatter.timeZone = timeZone + dateFormatter.dateFormat = format + dateFormatter.calendar = calendar + guard let date = dateFormatter.date(from: dateString) else { self = Date() return diff --git a/DateToolsSwift/Tests/DateToolsTests/DateToolsTestsTests/DateInitsExtensionTests.swift b/DateToolsSwift/Tests/DateToolsTests/DateToolsTestsTests/DateInitsExtensionTests.swift index 3809a53e..c5f8a18e 100644 --- a/DateToolsSwift/Tests/DateToolsTests/DateToolsTestsTests/DateInitsExtensionTests.swift +++ b/DateToolsSwift/Tests/DateToolsTests/DateToolsTestsTests/DateInitsExtensionTests.swift @@ -33,7 +33,14 @@ class DateDateToolsTests: XCTestCase { let testDate = Date(year: 2011, month: 12, day: 25) XCTAssertTrue(testDate.year == controlDate.year && testDate.month == controlDate.month && testDate.day == controlDate.day) } - + + func testInitWithDatestringFormatTimezoneCalendar() { + let testDate = Date(dateString: "2011 12 25 4:30:30.000", format: "yyyy MM dd HH:mm:ss.SSS", timeZone: TimeZone(abbreviation: "CST")!, calendar: Calendar(identifier: .persian)) + self.formatter.timeZone = TimeZone(abbreviation: "CST") + controlDate = self.formatter.date(from: "2633 03 16 4:30:30.000")! + XCTAssertTrue(testDate == controlDate) + } + func testInitWithDatestringFormatTimezone() { let testDate = Date(dateString: "2011 12 25 4:30:30.000", format: "yyyy MM dd HH:mm:ss.SSS", timeZone: TimeZone(abbreviation: "CST")!) self.formatter.timeZone = TimeZone(abbreviation: "CST") From fb1d24c8b8c300fd76dfac057e56dcacff587184 Mon Sep 17 00:00:00 2001 From: Daniel Drzimotta Date: Thu, 22 Jun 2017 11:10:55 -0600 Subject: [PATCH 2/2] Added farsi to our DateTools bundle. --- .../DateTools.bundle/fa.lproj/DateTools.strings | Bin 0 -> 3728 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 DateToolsSwift/DateTools/DateTools.bundle/fa.lproj/DateTools.strings diff --git a/DateToolsSwift/DateTools/DateTools.bundle/fa.lproj/DateTools.strings b/DateToolsSwift/DateTools/DateTools.bundle/fa.lproj/DateTools.strings new file mode 100644 index 0000000000000000000000000000000000000000..8dfd10368429fd55d2f15ee70c8e670e2a4c6214 GIT binary patch literal 3728 zcmchZ%W48a5JhWM3%_Czf?_a(hCo8dLh%to$SRvGC()<`XM&H2pOk;`o08n>rs;us zWYvXCqus52tiE-tet%->P()9ZVSK~5#%oR~?eO`NHkkRM70oa=!^|rkG0OS^vnk%q zvF8GF9g3+zO*%9CW|Uy(7V`;qW|)uY4v$;!@jdrBq9M0=#7(-zcN_SH5G+fazXxSC z%_X<^hC50;YZJLWB0R5Qih0Ne^o|;0_ zhnycyc?|td5StNq`5MXz<%W+?ie*@vyxJi;-j{W9+cUUK@&sC$;~8A`cm~l!_-uJG z&M*GIfxAhi^aL@~V5?&&9rTbF?w=R)LRNL6ASZbxmXqkHQb?R0%Q>{PDI``AtuErkqt@S7e7?Rgu&3ok{sE>2)Q~xTlrrMkJFqsCm+rFLHj;LVajvpycqTk=t`HQ)J4cn0sZ UMGEV(;Tc@j$rFs(RvUZz9|(sk2mk;8 literal 0 HcmV?d00001