|
|
@@ -114,21 +114,45 @@ func (c *Cell) SetFloatWithFormat(n float64, format string) {
|
|
|
|
|
|
var timeLocationUTC, _ = time.LoadLocation("UTC")
|
|
|
|
|
|
-func timeToUTCTime(t time.Time) time.Time {
|
|
|
- return time.Date(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), timeLocationUTC)
|
|
|
-}
|
|
|
-
|
|
|
func timeToExcelTime(t time.Time) float64 {
|
|
|
return float64(t.Unix())/86400.0 + 25569.0
|
|
|
}
|
|
|
|
|
|
+// DateTimeOptions are additional options for exporting times
|
|
|
+type DateTimeOptions struct {
|
|
|
+ // Location allows calculating times in other timezones/locations
|
|
|
+ Location *time.Location
|
|
|
+ // ExcelTimeFormat is the string you want excel to use to format the datetime
|
|
|
+ ExcelTimeFormat string
|
|
|
+}
|
|
|
+
|
|
|
+var (
|
|
|
+ DefaultDateFormat = builtInNumFmt[14]
|
|
|
+ DefaultDateTimeFormat = builtInNumFmt[22]
|
|
|
+
|
|
|
+ DefaultDateOptions = DateTimeOptions{
|
|
|
+ Location: timeLocationUTC,
|
|
|
+ ExcelTimeFormat: DefaultDateFormat,
|
|
|
+ }
|
|
|
+
|
|
|
+ DefaultDateTimeOptions = DateTimeOptions{
|
|
|
+ Location: timeLocationUTC,
|
|
|
+ ExcelTimeFormat: DefaultDateTimeFormat,
|
|
|
+ }
|
|
|
+)
|
|
|
+
|
|
|
// SetDate sets the value of a cell to a float.
|
|
|
func (c *Cell) SetDate(t time.Time) {
|
|
|
- c.SetDateTimeWithFormat(float64(int64(timeToExcelTime(timeToUTCTime(t)))), builtInNumFmt[14])
|
|
|
+ c.SetDateWithOptions(t, DefaultDateOptions)
|
|
|
}
|
|
|
|
|
|
func (c *Cell) SetDateTime(t time.Time) {
|
|
|
- c.SetDateTimeWithFormat(timeToExcelTime(timeToUTCTime(t)), builtInNumFmt[22])
|
|
|
+ c.SetDateWithOptions(t, DefaultDateTimeOptions)
|
|
|
+}
|
|
|
+
|
|
|
+// SetDateWithOptions allows for more granular control when exporting dates and times
|
|
|
+func (c *Cell) SetDateWithOptions(t time.Time, options DateTimeOptions) {
|
|
|
+ c.SetDateTimeWithFormat(timeToExcelTime(t.In(options.Location)), options.ExcelTimeFormat)
|
|
|
}
|
|
|
|
|
|
func (c *Cell) SetDateTimeWithFormat(n float64, format string) {
|