 		}
 
 		/// Calendar
-		public var calendar = Calendar.autoupdatingCurrent
+        public var calendar = Calendar.autoupdatingCurrent
 
 		public func apply(toFormatter formatter: DateComponentsFormatter) {
-			formatter.allowsFractionalUnits = allowsFractionalUnits
-			formatter.allowedUnits = allowedUnits
-			formatter.collapsesLargestUnit = collapsesLargestUnit
-			formatter.maximumUnitCount = maximumUnitCount
-			formatter.unitsStyle = unitsStyle
-			formatter.calendar = calendar
+            formatter.calendar = calendar
+            
+            if let allowsFractionalUnits = self.allowsFractionalUnits {
+                formatter.allowsFractionalUnits = allowsFractionalUnits
+            }
+            if let allowedUnits = self.allowedUnits {
+                formatter.allowedUnits = allowedUnits
+            }
+            if let collapsesLargestUnit = self.collapsesLargestUnit {
+                formatter.collapsesLargestUnit = collapsesLargestUnit
+            }
+            if let maximumUnitCount = self.maximumUnitCount {
+                formatter.maximumUnitCount = maximumUnitCount
+            }
+            if let zeroFormattingBehavior = self.zeroFormattingBehavior {
+                formatter.zeroFormattingBehavior = zeroFormattingBehavior
+            }
+            if let unitsStyle = self.unitsStyle {
+                formatter.unitsStyle = unitsStyle
+            }
 		}
 
 		public init() {}

	///
	/// - Parameter zero: behaviour with zero.
	/// - Returns: string representation
	func toClock(zero: DateComponentsFormatter.ZeroFormattingBehavior = .pad) -> String {
		return toIntervalString(options: {
			$0.unitsStyle = .positional
			$0.zeroFormattingBehavior = zero
		})
	}


		/// Fractional units may be used when a value cannot be exactly represented using the available units.
		/// For example, if minutes are not allowed, the value “1h 30m” could be formatted as “1.5h”.
		public var allowsFractionalUnits: Bool?

		/// Specify the units that can be used in the output.
		public var allowedUnits: NSCalendar.Unit?

		/// A Boolean value indicating whether to collapse the largest unit into smaller units when a certain threshold is met.
		public var collapsesLargestUnit: Bool?

		/// The maximum number of time units to include in the output string.
		/// If 0 does not cause the elimination of any units.
		public var maximumUnitCount: Int?

		/// The formatting style for units whose value is 0.
		public var zeroFormattingBehavior: DateComponentsFormatter.ZeroFormattingBehavior?

		/// The preferred style for units.
		public var unitsStyle: DateComponentsFormatter.UnitsStyle?

		/// Locale of the formatter
		public var locale: LocaleConvertible? {
