     set {
       _secondsSinceEpoch = newValue
       _buffer = TimeBuffer(secondsSinceEpoch: newValue)
+    }
+  }
+
+  // Returns a new instance of Time.
+  // If self is set on UTC already, just copy it over. Otherwise, convert it
+  // from local time to UTC.
+  public func toUtc() -> Time {
+    if isUtc {
+      return self
+    } else {
+      return Time.utc(secondsSinceEpoch: secondsSinceEpoch)
+    }
+  }
+
+  // Returns a new instance of Time.
+  // If self is set on local time already, just copy it over. Otherwise,
+  // convert it from UTC to local time.
+  public func toLocalTime() -> Time {
+    if !isUtc {
+      return self
+    } else {
+      return Time(buffer: TimeBuffer(secondsSinceEpoch: secondsSinceEpoch))
     }
   }
 

    return TimeBuffer(buffer: b, utc: true)
  }

}



    return Time(buffer: TimeBuffer.utc())
  }

  static public func utc(year year: Int, month: Int, day: Int, hour: Int = 0,
      minute: Int = 0, second: Int = 0) -> Time {
    return utc(secondsSinceEpoch: Time.convertToSecondsSinceEpoch(year,
        month: month, day: day, hour: hour, minute: minute, second: second))
  }

  static public func utc(secondsSinceEpoch secs: Int) -> Time {
    return Time(buffer: TimeBuffer.utc(secs))
  }

}
