我需要在同一个电子表格上记录来自世界各地的费用(能够在当地时间在东非写一个日期,在当地时间在迪拜,在泰国写一个日期......)
因此,在所有其他数据中,我需要记录:
我在1和3处执行操作的位置可能不同,例如,我可能位于泰国,并且想要记录我在美国制作的费用(并转换为在罗马的时间,这是一个永远存在)。
我使用"数据验证..."将A列设置为日期。在那里,我从弹出日历手动输入交易拣选日期,我手动添加时间(根据收据)。在下一栏中,我手动设置了进行交易时的时区。
我想在交易日期列中记录当我在本地显示时显示的日期。所以我想得到该列的日期以及包含时区的下一列。但如果我做了transcationDateCell.getValue()
我得到" 2016年11月22日18:59:51 + 0100"哪些已包含时区(脚本运行时的时区或电子表格设置中的时区?)
所以我不能使用手动设置的时区。
我用过:
var tsTransDateRome = Utilities.formatDate(new Date(tsTransDateValue), "Europe/Rome", dateFormatString);
其中tsTransDateValue
包含从电子表格用户界面手动设置的第1点日期。
我应该对此感到满意。它通过GAS自动填写。我用过:
var timeZoneScript = Session.getScriptTimeZone(); // Check if when I travel to a different TimeZone it will adjust or if the ScriptTimezone keeps being the one when the SpreadSheet was created (File->Spreadsheet Settings)
var tsTimeZoneRecCell = transSheet.getRange(tsActiveRowIdx, tsTimeZoneRecColIdx);
我推测,如果我移动到不同的时区,我的Session.getScriptTimeZone()
将调整为当地时区(即它不是通过电子表格设置设置的电子表格的时区......)? / p>
现在我在意大利,所以所有地点都一样。当我从1计算2.它只显示正确的时间,如果费用是在同一时区(中欧时间),因为当我选择日期并添加它在当前时区写的时间。
如果我想编写费用,包括在下一栏中手动设置的时区,我该怎么办?
我能否正确解决问题?