如何仅从电子邮件日期中提取年份
How to extract year only from email date
我正在阅读整个 Gmail 电子邮件 (inbox/sent/trash...),并尝试根据日期在 google 驱动器中创建文件夹。
所以文件夹应该分类为 (...,2019,2020,2021)。每个文件夹包含我Gmail里今年的所有邮件。
我设法创建了文件夹,通过使用 Threads 获取消息,所有这些工作正常,但我无法仅提取消息的年份。
当我使用 Threads[0].getMessages()[0].getDate()
时,返回的是 date and time of this message.,我无法仅从中提取年份。
- 我尝试拆分日期,但这不是字符串。
- 我试着让 smth 像
Threads[0].getMessages()[0].getDate().getYear()
它返回 120!!!
- 我尝试查看是否可以将其作为数组 [index] 访问,它返回 null
- 我试图将它解析为 Date(),但我也无法使用它。
有没有办法让我从这种格式中只提取年份。
这是我试图获取我正在使用的日期的脚本的一部分。
function GetAttachmentsWithTime() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
sheet.setActiveSheet(sheet.getSheetByName('Sheet1'));
var start = 0;
var end = 10;
var filter = "has:attachment";
var threads = GmailApp.search(filter,start,end);
Logger.log(threads[0].getMessages()[0].getDate())
}
您使用的是 V8 运行时吗?
如果是,请参阅 this migration guide。它说:
In the V8 runtime, Date.prototype.getYear() returns the year minus
1900 instead as required by ECMAScript standards.
所以 2020 年的电子邮件将 return 120(即 2020 - 1900 = 120)。
要解决此问题,请使用 .getFullYear()
:
When migrating your script to V8, always use
Date.prototype.getFullYear(), which returns a four-digit year
regardless of the date.
我正在阅读整个 Gmail 电子邮件 (inbox/sent/trash...),并尝试根据日期在 google 驱动器中创建文件夹。
所以文件夹应该分类为 (...,2019,2020,2021)。每个文件夹包含我Gmail里今年的所有邮件。
我设法创建了文件夹,通过使用 Threads 获取消息,所有这些工作正常,但我无法仅提取消息的年份。
当我使用 Threads[0].getMessages()[0].getDate()
时,返回的是 date and time of this message.,我无法仅从中提取年份。
- 我尝试拆分日期,但这不是字符串。
- 我试着让 smth 像
Threads[0].getMessages()[0].getDate().getYear()
它返回 120!!! - 我尝试查看是否可以将其作为数组 [index] 访问,它返回 null
- 我试图将它解析为 Date(),但我也无法使用它。
有没有办法让我从这种格式中只提取年份。
这是我试图获取我正在使用的日期的脚本的一部分。
function GetAttachmentsWithTime() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
sheet.setActiveSheet(sheet.getSheetByName('Sheet1'));
var start = 0;
var end = 10;
var filter = "has:attachment";
var threads = GmailApp.search(filter,start,end);
Logger.log(threads[0].getMessages()[0].getDate())
}
您使用的是 V8 运行时吗?
如果是,请参阅 this migration guide。它说:
In the V8 runtime, Date.prototype.getYear() returns the year minus 1900 instead as required by ECMAScript standards.
所以 2020 年的电子邮件将 return 120(即 2020 - 1900 = 120)。
要解决此问题,请使用 .getFullYear()
:
When migrating your script to V8, always use Date.prototype.getFullYear(), which returns a four-digit year regardless of the date.