forked from p30928647/excelize
This closes #1069, support time zone location when set cell value
This commit is contained in:
parent
9561976074
commit
7907650a97
2
cell.go
2
cell.go
|
@ -225,6 +225,8 @@ func (f *File) setCellTimeFunc(sheet, axis string, value time.Time) error {
|
|||
// timestamp.
|
||||
func setCellTime(value time.Time) (t string, b string, isNum bool, err error) {
|
||||
var excelTime float64
|
||||
_, offset := value.In(value.Location()).Zone()
|
||||
value = value.Add(time.Duration(offset) * time.Second)
|
||||
excelTime, err = timeToExcelTime(value)
|
||||
if err != nil {
|
||||
return
|
||||
|
|
18
cell_test.go
18
cell_test.go
|
@ -178,6 +178,24 @@ func TestSetCellBool(t *testing.T) {
|
|||
assert.EqualError(t, f.SetCellBool("Sheet1", "A", true), `cannot convert cell "A" to coordinates: invalid cell name "A"`)
|
||||
}
|
||||
|
||||
func TestSetCellTime(t *testing.T) {
|
||||
date, err := time.Parse(time.RFC3339Nano, "2009-11-10T23:00:00Z")
|
||||
assert.NoError(t, err)
|
||||
for location, expected := range map[string]string{
|
||||
"America/New_York": "40127.75",
|
||||
"Asia/Shanghai": "40128.291666666664",
|
||||
"Europe/London": "40127.958333333336",
|
||||
"UTC": "40127.958333333336",
|
||||
} {
|
||||
timezone, err := time.LoadLocation(location)
|
||||
assert.NoError(t, err)
|
||||
_, b, isNum, err := setCellTime(date.In(timezone))
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, true, isNum)
|
||||
assert.Equal(t, expected, b)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetCellValue(t *testing.T) {
|
||||
// Test get cell value without r attribute of the row.
|
||||
f := NewFile()
|
||||
|
|
Loading…
Reference in New Issue