     }
     
     public var year: Int {
-        get { return Calendar(identifier: .gregorian).component(.year, from: self) }
+        get { return Calendar.gregorianGMT.component(.year, from: self) }
     }
     
     public var month: Int {
-        get { return Calendar(identifier: .gregorian).component(.month, from: self) }
+        get { return Calendar.gregorianGMT.component(.month, from: self) }
     }
 
     public var day: Int {
-        get { return Calendar(identifier: .gregorian).component(.day, from: self) }
+        get { return Calendar.gregorianGMT.component(.day, from: self) }
     }
 
     public var hour: Int {
-        get { return Calendar(identifier: .gregorian).component(.hour, from: self) }
+        get { return Calendar.gregorianGMT.component(.hour, from: self) }
     }
 
     public var minute: Int {
-        get { return Calendar(identifier: .gregorian).component(.minute, from: self) }
+        get { return Calendar.gregorianGMT.component(.minute, from: self) }
     }
 
     public var second: Int {
-        get { return Calendar(identifier: .gregorian).component(.second, from: self) }
+        get { return Calendar.gregorianGMT.component(.second, from: self) }
     }
 
     public var nanosecond: Int {
-        get { return Calendar(identifier: .gregorian).component(.nanosecond, from: self) }
+        get { return Calendar.gregorianGMT.component(.nanosecond, from: self) }
     }
     
     public var isLeap : Bool {

        components.hour = 0
        components.minute = 0
        components.second = 0
        return Calendar(identifier: .gregorian).date(from: components)!
    }
    
    public var fractionalYear: Double {

        components.second = Int(floor(second))
        components.nanosecond = Int((second-floor(second))*1e6)
        
        var calendar = Calendar.gregorianGMT
        return calendar.date(from: components)!
    }
    
