Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/Podfile.lock b/Podfile.lock
index 9b55aff..a58f9a4 100644
--- a/Podfile.lock
+++ b/Podfile.lock
@@ -1,5 +1,5 @@
PODS:
- - Nimble (8.0.4)
+ - Nimble (8.0.5)
- Quick (2.2.0)
DEPENDENCIES:
@@ -12,9 +12,9 @@ SPEC REPOS:
- Quick
SPEC CHECKSUMS:
- Nimble: 18d5360282923225d62b09d781f63abc1a0111fc
+ Nimble: 4ab1aeb9b45553c75b9687196b0fa0713170a332
Quick: 7fb19e13be07b5dfb3b90d4f9824c855a11af40e
PODFILE CHECKSUM: 763483d3f1d753931666cf8edc278cad7a865e63
-COCOAPODS: 1.8.4
+COCOAPODS: 1.9.3
diff --git a/README.md b/README.md
index 4ca26ba..41a4659 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,15 @@
SHDateFormatter
-
-
+
+
-
+
-
+
@@ -22,10 +22,6 @@
-
-
-
-
@@ -41,8 +37,10 @@
This framework supports encoding as well as decoding many different date and time format. At the moment the follownig are supported (see SHDateFormat):
-* `shortWeekdayName` => Sun, Mon, Tue, ...
-* `longWeekdayName` => Sunday, Monday, Tuesday, ...
+* `shortWeekday` => Sun, Mon, Tue, ...
+* `longWeekday` => Sunday, Monday, Tuesday, ...
+* `shortMonth` => Jan, Feb, ...
+* `longMonth` => January, February, ...
* `shortTimeNoDate` => 12:00 PM, 1:00 AM
* `shortTimeMediumDate` => Jan 1, 2000 at 12:00 AM
* `noTimeShortDateNoYear` => 12/31
@@ -57,10 +55,6 @@ Additionally the following convenience functions are available on the SHDateForm
* `localizedTimeStringFromDate(_:)` - will return `--:--` per default
* ... to be continued ...
-## Requirements
-
-The framework is compatible with Xcode 11 and Swift 5.1. The minimum version is iOS 9.
-
## Installation
SHDateFormatter is available through [CocoaPods](http://cocoapods.org). To install
@@ -82,4 +76,4 @@ pod 'SHDateFormatter'
## License
-SHDateFormatter is available under the MIT license. See the LICENSE file for more info.
+Source is available under the MIT license. See the [LICENSE](LICENSE) file for more info.
diff --git a/SHDateFormatter.podspec b/SHDateFormatter.podspec
index 23a904d..8db4b53 100644
--- a/SHDateFormatter.podspec
+++ b/SHDateFormatter.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'SHDateFormatter'
- s.version = '1.4.3'
+ s.version = '1.5.0'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.summary = 'A date formatter supporting encoding as well as decoding of many different date and time formats including the often used ISO8601 standard.'
s.description = <<-DESC
diff --git a/SHDateFormatter.xcodeproj/project.pbxproj b/SHDateFormatter.xcodeproj/project.pbxproj
index 2ae5fe1..d68e9a1 100644
--- a/SHDateFormatter.xcodeproj/project.pbxproj
+++ b/SHDateFormatter.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 46;
+ objectVersion = 52;
objects = {
/* Begin PBXBuildFile section */
@@ -173,6 +173,7 @@
isa = PBXNativeTarget;
buildConfigurationList = B9C8324321C84B300008ED90 /* Build configuration list for PBXNativeTarget "SHDateFormatter-iOS" */;
buildPhases = (
+ B902957023E7AE8B00269EA9 /* SwiftLint */,
B9C8323921C84B300008ED90 /* Headers */,
B9C8323A21C84B300008ED90 /* Sources */,
B9C8323B21C84B300008ED90 /* Frameworks */,
@@ -195,7 +196,7 @@
attributes = {
LastSwiftUpdateCheck = 0830;
LastUpgradeCheck = 1010;
- ORGANIZATIONNAME = CocoaPods;
+ ORGANIZATIONNAME = "Stefan Herold";
TargetAttributes = {
607FACE41AFB9204008FA782 = {
CreatedOnToolsVersion = 6.3.1;
@@ -210,7 +211,7 @@
};
};
buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "SHDateFormatter" */;
- compatibilityVersion = "Xcode 3.2";
+ compatibilityVersion = "Xcode 11.0";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
@@ -272,20 +273,35 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
- FDF77FD1B9B4ED725533FA48 /* [CP] Embed Pods Frameworks */ = {
+ B902957023E7AE8B00269EA9 /* SwiftLint */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
+ inputFileListPaths = (
+ );
inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-TestPods-SHDateFormatter_iOS_Tests/Pods-TestPods-SHDateFormatter_iOS_Tests-frameworks.sh",
- "${BUILT_PRODUCTS_DIR}/Nimble/Nimble.framework",
- "${BUILT_PRODUCTS_DIR}/Quick/Quick.framework",
);
- name = "[CP] Embed Pods Frameworks";
+ name = SwiftLint;
+ outputFileListPaths = (
+ );
outputPaths = (
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Nimble.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Quick.framework",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "mint run swiftlint\n";
+ };
+ FDF77FD1B9B4ED725533FA48 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-TestPods-SHDateFormatter_iOS_Tests/Pods-TestPods-SHDateFormatter_iOS_Tests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-TestPods-SHDateFormatter_iOS_Tests/Pods-TestPods-SHDateFormatter_iOS_Tests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
@@ -417,7 +433,8 @@
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
- SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
VALIDATE_PRODUCT = YES;
};
name = Release;
@@ -431,7 +448,11 @@
"$(inherited)",
);
INFOPLIST_FILE = Tests/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
@@ -443,7 +464,11 @@
baseConfigurationReference = 922B1BD143DA18A28738AA1C /* Pods-TestPods-SHDateFormatter_iOS_Tests.release.xcconfig */;
buildSettings = {
INFOPLIST_FILE = Tests/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
@@ -462,17 +487,21 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 10;
+ CURRENT_PROJECT_VERSION = 11;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = PCW579R278;
DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 10;
+ DYLIB_CURRENT_VERSION = 11;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = source/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.codingcobra.SHDateFormatter;
@@ -499,16 +528,20 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 10;
+ CURRENT_PROJECT_VERSION = 11;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = PCW579R278;
DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 10;
+ DYLIB_CURRENT_VERSION = 11;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = source/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.codingcobra.SHDateFormatter;
PRODUCT_NAME = SHDateFormatter;
diff --git a/SHDateFormatter.xcodeproj/xcshareddata/xcschemes/SHDateFormatter-iOS.xcscheme b/SHDateFormatter.xcodeproj/xcshareddata/xcschemes/SHDateFormatter-iOS.xcscheme
index b818b12..f96a3d4 100644
--- a/SHDateFormatter.xcodeproj/xcshareddata/xcschemes/SHDateFormatter-iOS.xcscheme
+++ b/SHDateFormatter.xcodeproj/xcshareddata/xcschemes/SHDateFormatter-iOS.xcscheme
@@ -26,7 +26,9 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- shouldUseLaunchSchemeArgsEnv = "YES">
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ codeCoverageEnabled = "YES"
+ onlyGenerateCoverageForSpecifiedTargets = "YES">
+
+
+
+
diff --git a/Tests/DateFormatterTests.swift b/Tests/DateFormatterTests.swift
index 899ffc7..b4feaa5 100644
--- a/Tests/DateFormatterTests.swift
+++ b/Tests/DateFormatterTests.swift
@@ -3,17 +3,21 @@ import Quick
import Nimble
@testable import SHDateFormatter
-class DateFormatterTests: QuickSpec {
+// swiftlint:disable:next type_body_length
+final class DateFormatterTests: QuickSpec {
+ // swiftlint:disable:next function_body_length
override func spec() {
- describe("DateFormatter") {
+ let gmtZone = TimeZone.GMT
+
+ let deDELocale = Locale(identifier: "de_DE")
+ let enUSLocale = Locale(identifier: "en_US")
+ let frFRLocale = Locale(identifier: "fr_FR")
- let gmtZone = TimeZone(identifier: "Europe/London")!
+ var testDate: Date = Date()
- let deDE_Locale = Locale(identifier: "de_DE")
- let enUS_Locale = Locale(identifier: "en_US")
- let frFR_Locale = Locale(identifier: "fr_FR")
+ describe("DateFormatter") {
func dateFrom(year: Int, month: Int, day: Int, hour: Int, min: Int, sec: Int) -> Date {
@@ -48,15 +52,15 @@ class DateFormatterTests: QuickSpec {
context("12h format") {
it("uses 12h format for locale en_US") {
- expect(SHDateFormatter.is12hFormat(enUS_Locale)) == true
+ expect(SHDateFormatter.is12hFormat(enUSLocale)) == true
}
it("uses 24h format for locale de_DE") {
- expect(SHDateFormatter.is12hFormat(deDE_Locale)) == false
+ expect(SHDateFormatter.is12hFormat(deDELocale)) == false
}
it("uses 24h format for locale fr_FR") {
- expect(SHDateFormatter.is12hFormat(frFR_Locale)) == false
+ expect(SHDateFormatter.is12hFormat(frFRLocale)) == false
}
}
@@ -65,7 +69,7 @@ class DateFormatterTests: QuickSpec {
context("General Tests") {
it("returns a nil date the input string is nil") {
- let result = SHDateFormatter.shared.date(from: nil, format: .shortWeekdayName)
+ let result = SHDateFormatter.shared.date(from: nil, format: .shortWeekday)
expect(result).to(beNil())
}
}
@@ -76,140 +80,316 @@ class DateFormatterTests: QuickSpec {
context("General Tests") {
it("returns an empty string the input date is nil") {
- let result = SHDateFormatter.shared.string(from: nil, format: .shortWeekdayName)
+ let result = SHDateFormatter.shared.string(from: nil, format: .shortWeekday)
expect(result) == ""
}
}
context("Test 2000/01/01/12:00am") {
- let testDate = dateFrom(year: 2000, month: 1, day: 1, hour: 0, min: 0, sec: 0) // 12 am a Saturday with DST
+ beforeEach {
+ // 12 am a Saturday with DST
+ testDate = dateFrom(year: 2000,
+ month: 1,
+ day: 1,
+ hour: 0,
+ min: 0,
+ sec: 0)
+ }
- context("\(deDE_Locale.identifier)") {
+ context("\(deDELocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: deDE_Locale, timeZone: gmtZone)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "Sa"
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: deDE_Locale, timeZone: gmtZone)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "Samstag"
}
+ it("ShortMonth") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortMonth,
+ locale: deDELocale,
+ timeZone: gmtZone)
+ expect(result) == "Jan"
+ }
+
+ it("LongMonth") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longMonth,
+ locale: deDELocale,
+ timeZone: gmtZone)
+ expect(result) == "Januar"
+ }
+
+ it("ShortYear") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortYear,
+ locale: deDELocale,
+ timeZone: gmtZone)
+ expect(result) == "00"
+ }
+
+ it("LongYear") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longYear,
+ locale: deDELocale,
+ timeZone: gmtZone)
+ expect(result) == "2000"
+ }
+
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: deDE_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "00:00"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: deDE_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "01.01.2000, 00:00"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: deDE_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "1.1."
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: deDE_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "01.01.00"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: deDE_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "1. Januar 2000"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: deDE_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "2000-01-01T00:00:00Z"
}
}
- context("\(enUS_Locale.identifier)") {
+ context("\(enUSLocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: enUS_Locale, timeZone: gmtZone)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "Sat"
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: enUS_Locale, timeZone: gmtZone)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "Saturday"
}
+ it("ShortMonth") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortMonth,
+ locale: enUSLocale,
+ timeZone: gmtZone)
+ expect(result) == "Jan"
+ }
+
+ it("LongMonth") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longMonth,
+ locale: enUSLocale,
+ timeZone: gmtZone)
+ expect(result) == "January"
+ }
+
+ it("ShortYear") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortYear,
+ locale: enUSLocale,
+ timeZone: gmtZone)
+ expect(result) == "00"
+ }
+
+ it("LongYear") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longYear,
+ locale: enUSLocale,
+ timeZone: gmtZone)
+ expect(result) == "2000"
+ }
+
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: enUS_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "12:00 AM"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: enUS_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "Jan 1, 2000 at 12:00 AM"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: enUS_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "1/1"
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: enUS_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "1/1/00"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: enUS_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "January 1, 2000"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: enUS_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "2000-01-01T00:00:00Z"
}
}
- context("\(frFR_Locale.identifier)") {
+ context("\(frFRLocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: frFR_Locale, timeZone: gmtZone)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "sam."
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: frFR_Locale, timeZone: gmtZone)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "samedi"
}
+ it("ShortMonth") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortMonth,
+ locale: frFRLocale,
+ timeZone: gmtZone)
+ expect(result) == "janv."
+ }
+
+ it("LongMonth") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longMonth,
+ locale: frFRLocale,
+ timeZone: gmtZone)
+ expect(result) == "janvier"
+ }
+
+ it("ShortYear") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortYear,
+ locale: frFRLocale,
+ timeZone: gmtZone)
+ expect(result) == "00"
+ }
+
+ it("LongYear") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longYear,
+ locale: frFRLocale,
+ timeZone: gmtZone)
+ expect(result) == "2000"
+ }
+
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: frFR_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "00:00"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: frFR_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "1 janv. 2000 à 00:00"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: frFR_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "01/01"
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: frFR_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "01/01/2000"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: frFR_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "1 janvier 2000"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: frFR_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "2000-01-01T00:00:00Z"
}
}
@@ -217,133 +397,309 @@ class DateFormatterTests: QuickSpec {
context("Test 2000/01/02/12:00pm") {
- let testDate = dateFrom(year: 2000, month: 1, day: 2, hour: 12, min: 0, sec: 0) // 12 pm a Sunday
+ beforeEach {
+ // 12 pm a Sunday
+ testDate = dateFrom(year: 2000,
+ month: 1,
+ day: 2,
+ hour: 12,
+ min: 0,
+ sec: 0)
+ }
- context("\(deDE_Locale.identifier)") {
+ context("\(deDELocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: deDE_Locale, timeZone: gmtZone)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "So"
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: deDE_Locale, timeZone: gmtZone)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "Sonntag"
}
+ it("ShortMonth") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortMonth,
+ locale: deDELocale,
+ timeZone: gmtZone)
+ expect(result) == "Jan"
+ }
+
+ it("LongMonth") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longMonth,
+ locale: deDELocale,
+ timeZone: gmtZone)
+ expect(result) == "Januar"
+ }
+
+ it("ShortYear") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortYear,
+ locale: deDELocale,
+ timeZone: gmtZone)
+ expect(result) == "00"
+ }
+
+ it("LongYear") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longYear,
+ locale: deDELocale,
+ timeZone: gmtZone)
+ expect(result) == "2000"
+ }
+
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: deDE_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "12:00"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: deDE_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "02.01.2000, 12:00"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: deDE_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "2.1."
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: deDE_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "02.01.00"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: deDE_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "2. Januar 2000"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: deDE_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: deDELocale,
+ timeZone: gmtZone)
expect(result) == "2000-01-02T12:00:00Z"
}
}
- context("\(enUS_Locale.identifier)") {
+ context("\(enUSLocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: enUS_Locale, timeZone: gmtZone)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "Sun"
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: enUS_Locale, timeZone: gmtZone)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "Sunday"
}
+ it("ShortMonth") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortMonth,
+ locale: enUSLocale,
+ timeZone: gmtZone)
+ expect(result) == "Jan"
+ }
+
+ it("LongMonth") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longMonth,
+ locale: enUSLocale,
+ timeZone: gmtZone)
+ expect(result) == "January"
+ }
+
+ it("ShortYear") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortYear,
+ locale: enUSLocale,
+ timeZone: gmtZone)
+ expect(result) == "00"
+ }
+
+ it("LongYear") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longYear,
+ locale: enUSLocale,
+ timeZone: gmtZone)
+ expect(result) == "2000"
+ }
+
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: enUS_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "12:00 PM"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: enUS_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "Jan 2, 2000 at 12:00 PM"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: enUS_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "1/2"
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: enUS_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "1/2/00"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: enUS_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "January 2, 2000"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: enUS_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: enUSLocale,
+ timeZone: gmtZone)
expect(result) == "2000-01-02T12:00:00Z"
}
}
- context("\(frFR_Locale.identifier)") {
+ context("\(frFRLocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: frFR_Locale, timeZone: gmtZone)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "dim."
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: frFR_Locale, timeZone: gmtZone)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "dimanche"
}
+ it("ShortMonth") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortMonth,
+ locale: frFRLocale,
+ timeZone: gmtZone)
+ expect(result) == "janv."
+ }
+
+ it("LongMonth") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longMonth,
+ locale: frFRLocale,
+ timeZone: gmtZone)
+ expect(result) == "janvier"
+ }
+
+ it("ShortYear") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortYear,
+ locale: frFRLocale,
+ timeZone: gmtZone)
+ expect(result) == "00"
+ }
+
+ it("LongYear") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longYear,
+ locale: frFRLocale,
+ timeZone: gmtZone)
+ expect(result) == "2000"
+ }
+
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: frFR_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "12:00"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: frFR_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "2 janv. 2000 à 12:00"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: frFR_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "02/01"
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: frFR_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "02/01/2000"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: frFR_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "2 janvier 2000"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: frFR_Locale, timeZone: gmtZone)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: frFRLocale,
+ timeZone: gmtZone)
expect(result) == "2000-01-02T12:00:00Z"
}
}
@@ -353,133 +709,230 @@ class DateFormatterTests: QuickSpec {
context("Yesterday Noon") {
- let testDate = todayNoon().minus24Hours()
+ beforeEach {
+ testDate = todayNoon().minus24Hours()
+ }
- context("\(deDE_Locale.identifier)") {
+ context("\(deDELocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: deDELocale,
+ timeZone: gmtZone, needsRelativeFormatting: true)
expect(result) == ""
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "12:00"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Gestern, 12:00"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Gestern"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Gestern"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
}
- context("\(enUS_Locale.identifier)") {
+ context("\(enUSLocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "12:00 PM"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Yesterday at 12:00 PM"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Yesterday"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Yesterday"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
}
- context("\(frFR_Locale.identifier)") {
+ context("\(frFRLocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "12:00"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "hier à 12:00"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "hier"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "hier"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
}
@@ -487,133 +940,231 @@ class DateFormatterTests: QuickSpec {
context("Today Noon") {
- let testDate = todayNoon()
+ beforeEach {
+ testDate = todayNoon()
+ }
- context("\(deDE_Locale.identifier)") {
+ context("\(deDELocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "12:00"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Heute, 12:00"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Heute"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Heute"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
}
- context("\(enUS_Locale.identifier)") {
+ context("\(enUSLocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "12:00 PM"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Today at 12:00 PM"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Today"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Today"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
}
- context("\(frFR_Locale.identifier)") {
+ context("\(frFRLocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "12:00"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "aujourd’hui à 12:00"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "aujourd’hui"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "aujourd’hui"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
}
@@ -621,133 +1172,231 @@ class DateFormatterTests: QuickSpec {
context("Tomorrow Noon") {
- let testDate = todayNoon().plus24Hours()
+ beforeEach {
+ testDate = todayNoon().plus24Hours()
+ }
- context("\(deDE_Locale.identifier)") {
+ context("\(deDELocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "12:00"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Morgen, 12:00"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Morgen"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Morgen"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: deDE_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: deDELocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
}
- context("\(enUS_Locale.identifier)") {
+ context("\(enUSLocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "12:00 PM"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Tomorrow at 12:00 PM"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Tomorrow"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "Tomorrow"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: enUS_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: enUSLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
}
- context("\(frFR_Locale.identifier)") {
+ context("\(frFRLocale.identifier)") {
- it("ShortWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortWeekdayName, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("ShortWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortWeekday,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
- it("LongWeekdayName") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .longWeekdayName, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ it("LongWeekday") {
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .longWeekday,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("ShortTimeNoDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeNoDate, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeNoDate,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "12:00"
}
it("ShortTimeMediumDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .shortTimeMediumDate, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .shortTimeMediumDate,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "demain à 12:00"
}
it("NoTimeShortDateNoYear") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDateNoYear, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDateNoYear,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
it("NoTimeShortDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeShortDate, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeShortDate,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "demain"
}
it("NoTimeLongDate") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .noTimeLongDate, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .noTimeLongDate,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == "demain"
}
it("ISO8601") {
- let result = SHDateFormatter.shared.string(from: testDate, format: .ISO8601, locale: frFR_Locale, timeZone: gmtZone, needsRelativeFormatting: true)
+ let result = SHDateFormatter.shared.string(from: testDate,
+ format: .ISO8601,
+ locale: frFRLocale,
+ timeZone: gmtZone,
+ needsRelativeFormatting: true)
expect(result) == ""
}
}
diff --git a/Tests/Info.plist b/Tests/Info.plist
index 73ed4c8..3fba1fe 100644
--- a/Tests/Info.plist
+++ b/Tests/Info.plist
@@ -15,8 +15,8 @@
CFBundlePackageType
BNDL
CFBundleShortVersionString
- 1.4.3
+ 1.5.0
CFBundleVersion
- 10
+ 11
diff --git a/fastlane/Fastfile b/fastlane/Fastfile
deleted file mode 100644
index 7bbecd9..0000000
--- a/fastlane/Fastfile
+++ /dev/null
@@ -1,6 +0,0 @@
-
-import_from_git(
- url: "git@github.com:Blackjacx/Scripts.git",
- branch: "master",
- path: "Fastfile_Pods"
-)
\ No newline at end of file
diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile
deleted file mode 100644
index 8f896e8..0000000
--- a/fastlane/Pluginfile
+++ /dev/null
@@ -1,5 +0,0 @@
-# Autogenerated by fastlane
-#
-# Ensure this file is checked in to source control!
-
-gem 'fastlane-plugin-changelog'
diff --git a/source/Classes/Date+Utils.swift b/source/Classes/Date+Utils.swift
index c403df6..56202da 100644
--- a/source/Classes/Date+Utils.swift
+++ b/source/Classes/Date+Utils.swift
@@ -3,24 +3,21 @@
// SHDateFormatter
//
// Created by Stefan Herold on 06.07.17.
-// Copyright © 2017 StefanHerold. All rights reserved.
+// Copyright © 2020 Stefan Herold. All rights reserved.
//
import Foundation
-struct DateConstants {
+enum DateConstants {
static let dayInSeconds = 86400.0
}
-extension Date {
-
- public func minus24Hours() -> Date {
-
- return addingTimeInterval(-DateConstants.dayInSeconds)
+public extension Date {
+ func minus24Hours() -> Date {
+ addingTimeInterval(-DateConstants.dayInSeconds)
}
- public func plus24Hours() -> Date {
-
- return addingTimeInterval(DateConstants.dayInSeconds)
+ func plus24Hours() -> Date {
+ addingTimeInterval(DateConstants.dayInSeconds)
}
}
diff --git a/source/Classes/SHDateFormatter+Extension.swift b/source/Classes/SHDateFormatter+Extension.swift
index df65211..50b65a7 100644
--- a/source/Classes/SHDateFormatter+Extension.swift
+++ b/source/Classes/SHDateFormatter+Extension.swift
@@ -3,14 +3,14 @@
// SHDateFormatter
//
// Created by Stefan Herold on 07/10/2016.
-// Copyright © 2016 StefanHerold. All rights reserved.
+// Copyright © 2020 Stefan Herold. All rights reserved.
//
import Foundation
-extension SHDateFormatter {
-
- public func localizedTimeStringFromDate(date: Date?) -> String {
+public extension SHDateFormatter {
+
+ func localizedTimeStringFromDate(date: Date?) -> String {
date.map { string(from: $0, format: .shortTimeNoDate) } ?? "--:--"
}
}
diff --git a/source/Classes/SHDateFormatter.swift b/source/Classes/SHDateFormatter.swift
index bc9a71f..b0604ef 100644
--- a/source/Classes/SHDateFormatter.swift
+++ b/source/Classes/SHDateFormatter.swift
@@ -1,12 +1,16 @@
import Foundation
-struct Calendars {
+enum Calendars {
static let gregorian: Calendar = Calendar(identifier: .gregorian)
}
public enum SHDateFormat: String {
- case shortWeekdayName = "EEE"
- case longWeekdayName = "EEEE"
+ case shortWeekday = "EEE"
+ case longWeekday = "EEEE"
+ case shortMonth = "MMM"
+ case longMonth = "MMMM"
+ case longYear = "yyyy"
+ case shortYear = "yy"
case shortTimeNoDate
case shortTimeMediumDate
case noTimeShortDateNoYear = "d.M."
@@ -44,10 +48,10 @@ public struct SHDateFormatter {
let locale = SHDateFormatter.formatter.locale
switch format {
- case .shortWeekdayName: fallthrough
- case .longWeekdayName: fallthrough
- case .noTimeShortDateNoYear:
- SHDateFormatter.formatter.dateFormat = DateFormatter.dateFormat(fromTemplate: format.rawValue, options: 0, locale: locale)
+ case .shortWeekday, .longWeekday, .shortMonth, .longMonth, .longYear, .shortYear, .noTimeShortDateNoYear:
+ SHDateFormatter.formatter.dateFormat = DateFormatter.dateFormat(fromTemplate: format.rawValue,
+ options: 0,
+ locale: locale)
case .shortTimeNoDate:
SHDateFormatter.formatter.timeStyle = .short
@@ -96,7 +100,11 @@ public struct SHDateFormatter {
* - parameter needsRelativeFormatting: Use relative formating when set to true.
* - returns: A String object representing the date.
*/
- public func string(from date: Date?, format: SHDateFormat, locale: Locale? = nil, timeZone: TimeZone? = nil, needsRelativeFormatting: Bool = false) -> String {
+ public func string(from date: Date?,
+ format: SHDateFormat,
+ locale: Locale? = nil,
+ timeZone: TimeZone? = nil,
+ needsRelativeFormatting: Bool = false) -> String {
var dateString: String = ""
guard let date = date else {
@@ -123,7 +131,11 @@ public struct SHDateFormatter {
* - parameter needsRelativeFormatting: Use relative formating when set to true.
* - returns: A Date object representing the date.
*/
- public func date(from string: String?, format: SHDateFormat, locale: Locale? = nil, timeZone: TimeZone? = nil, needsRelativeFormatting: Bool = false) -> Date? {
+ public func date(from string: String?,
+ format: SHDateFormat,
+ locale: Locale? = nil,
+ timeZone: TimeZone? = nil,
+ needsRelativeFormatting: Bool = false) -> Date? {
var date: Date?
guard let dateString = string else {
diff --git a/source/Classes/TimeZone+Extensions.swift b/source/Classes/TimeZone+Extensions.swift
index ad6ba39..a32abab 100644
--- a/source/Classes/TimeZone+Extensions.swift
+++ b/source/Classes/TimeZone+Extensions.swift
@@ -4,7 +4,7 @@ import Foundation
public extension TimeZone {
static let GMT = TimeZone(identifier: "GMT")!
-
+
enum Europe {
public static let Berlin = TimeZone(identifier: "Europe/Berlin")!
public static let London = TimeZone(identifier: "Europe/London")!
diff --git a/source/Info.plist b/source/Info.plist
index 19f3e09..857d3cd 100644
--- a/source/Info.plist
+++ b/source/Info.plist
@@ -15,8 +15,8 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 1.4.3
+ 1.5.0
CFBundleVersion
- 10
+ 11