   public var description: String {
     return "TimeBuffer(year: \(year), month: \(month), day: \(day), " +
         "hour: \(hour), minute: \(minute), second: \(second), " +
-        "weekday: \(weekday), yearday: \(yearday), isDst: \(isDst))"
+        "weekday: \(weekday), yearday: \(yearday), isDst: \(isDst), " +
+        "isUtc: \(_utc))"
+  }
+
+  static func utc() -> TimeBuffer {
+    var n = time(nil)
+    var b = tm()
+    gmtime_r(&n, &b)
+    return TimeBuffer(buffer: b, utc: true)
   }
 
 }

public struct TimeBuffer: CustomStringConvertible {

  public var buffer: CTime

  public init(secondsSinceEpoch: Int) {
    var n = secondsSinceEpoch
    var b = tm()
    gmtime_r(&n, &b)
    buffer = b
  }


    self.init(secondsSinceEpoch: time(nil))
  }

  public init(buffer: CTime, utc: Bool = false) {
    self.buffer = buffer
    _utc = utc
  }

  public var isUtc: Bool { return _utc }

  public var isDst: Bool { return buffer.tm_isdst == 1 }

