datetime - 根据电子表格区域设置获取时间格式?
问题描述
我想Date()
根据电子表格的语言环境(SpreadsheetApp.getActive().getSpreadsheetLocale()
)以正确的格式将 Javascript 对象存储在电子表格中。
有没有办法从电子表格语言环境中获取特定于国家/地区的(日期和)时间格式字符串?
例如,当区域设置为 de_DE 时,时间格式字符串为hh:mm
但当区域设置为 da_DK 时,时间格式字符串为hh.mm
Interesting 以及如何获取国家货币格式。
顺便说一句,当我有日期和时间de_DE
而不是更改为 时da_DK
,日期被重新格式化(23.01.2020 -> 23/01/2020
)但时间不是(它保持为22:59
)。这是电子表格中的错误吗?
解决方案
JavaScript 中的日期具有toLocaleDateString方法,该方法返回根据指定区域设置格式化的字符串。但这似乎不适用于 Apps 脚本。
如果您愿意为此使用Apps Script Web App,您可以toLocaleDateString
在客户端脚本(即 HTML 中的脚本标记)中使用它。
如果不是这种情况,我认为您最好的选择是自己创建格式和语言环境之间的关系,因为 Apps Script 没有内置方法来实现这一点。例如,您可以使用一个检查语言环境的switch语句,然后使用Utilities.formatDate(Apps 脚本用于格式化日期的工具)相应地格式化日期。它可能是以下几行:
var locale = SpreadsheetApp.getActive().getSpreadsheetLocale();
var formattedDate;
switch (locale) {
case 'de_DE':
formattedDate = Utilities.formatDate(yourDate, yourTimeZone, "hh:mm");
break;
case 'da_DK':
formattedDate = Utilities.formatDate(yourDate, yourTimeZone, "hh.mm");
break;
// ...
}
return formattedDate;
参考:
我希望这有任何帮助。
推荐阅读
- android - ListView 项目不可点击,内部单个 TextView
- php - 如何使用通配符在 Nginx 中部署 laravel
- javascript - 如何在 Ajax 请求中为数据生成一次 div,然后在下一个 ajax 请求中仅更新 div 中的数据?
- python - SQLAlchemy 中的 BIGINT 和 BigInteger 有什么区别?
- c - 为什么没有变量时main初始化堆栈帧
- ios - 来自调试器的消息:下载大图像时由于内存问题而终止
- ruby - 错误编译器 gem 'private-gem-server'
- c# - Abp 样板 Abp.Feature.AllFeatures 到 C#
- ios - 在 .xib 的 UICollectionViewCell 中使用 IBOutlet 时出现 NSUnknownKeyException
- html - 单独设置 h2-Element 样式,即使它位于受 flex 影响的 div 内