已验证 提交 7907650a 编写于 作者: xurime's avatar xurime

This closes #1069, support time zone location when set cell value

上级 95619760
......@@ -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
......
......@@ -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()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册