【问题标题】:Apps Script: How to convert English date format to German date format?Apps 脚本:如何将英文日期格式转换为德文日期格式?
【发布时间】:2021-10-18 09:46:06
【问题描述】:

我很确定这是一个小问题,但我只是不知道如何解决它,因为我是使用 Apps 脚本的新手 :(。

问题:

我有一张由 2 列组成的表格:A 和 B。A 列包含以德语格式(日/月/年)书写的日期。示例:2021 年 10 月 18 日写成 18/10/2021。现在我要做的就是每天从 A 列增加 1 天,然后在 B 列中写入结果(因此,增加的天数)。

尝试的解决方案:

我已经想出了如何增加天数并将结果写在 B 列中。但我正在努力添加脚本的第二部分,以便在 B 列中用德语写出增加的日期(请参阅下面的脚本)。

问题:

如何以及在何处将“Utilities.formatDate()”包含到我的代码中,以便 B 列中的日期以德语格式化? (所以,DAY/MONTH/YEAR 而不是 MONTH/DAY/YEAR)?

非常感谢您的帮助。

// Increment dates in colum A by 1 day and write this incremented date in colum B
function incrementDateInGermanFormat() {
  var ss = SpreadsheetApp.getActiveSheet();
  var date = new Date(ss.getRange(1, 1).getValue());
  ss.getRange(1, 2).setValue(new Date(date.setDate(date.getDate() + 1)));
}

// This is the line I´m having trouble to include in the script above
Utilities.formatDate(date, Session.getScriptTimeZone(), "dd/MM/yyyy")

【问题讨论】:

  • @Kos - 感谢您的提示。我已经尝试了该链接上代码的许多变体......徒劳无功。你还有什么可以推荐给我的更符合我问题的特殊性的吗?谢谢:)

标签: date google-apps-script google-sheets


【解决方案1】:

将日期转换为字符串是不好的做法。在这种情况下,更好的选择是在电子表格用户界面中将 B 列的日期格式简单地更改为德语,或者在 B 列上使用 .setNumberFormat("dd/mm/yyyy")

【讨论】:

  • A 列中的日期已经完全符合我的要求:采用德语格式(因此,DAY/MONTH/YEAR)。当 B 列中的日期增加时,我希望这种德语格式保持/不改变。现在的问题是:我如何以及在哪里添加您刚刚推荐给我的 setNumberFormat("dd/mm/yyyy"?谢谢 :)
  • @BobHardball 首先,为什么不能在用户界面中更改它?选择B列>数字>格式
  • 当我按照您的建议进行操作时(因此,请使用用户界面格式化 B 列中的值),每个单元格中都会出现“1/1/1970”。因此我再次提出最初的问题:您或任何人是否知道我可以如何以及在何处将其添加到我的最终脚本中? “Utilities.formatDate(日期,Session.getScriptTimeZone(),”dd/MM/yyyy“)”。谢谢:)
  • @BobHardball 没有。回去吧。不要包扎这个问题。从源头上对待它。如果你得到“1/1/1970”,它仅仅意味着你设置的新日期是错误的,这可能意味着你从 A 列得到的日期是错误的。日期应作为日期放在电子表格中。 A列的类型是什么?例如,=TYPE(A1) 的输出是什么。见support.google.com/docs/answer/3267375=ISDATE(A1)
  • @TheMaster - 经过近 2 小时的阅读所有建议并仔细检查了我的脚本后,我终于意识到您在更改电子表格,而不是试图重新发明轮子。是的,更改设置是关键。非常感谢,@TheMaster!!!!
猜你喜欢
  • 1970-01-01
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-25
  • 1970-01-01
相关资源
最近更新 更多