我正在使用Gmail API在我的c# ASP.net应用程序中获取收件箱消息。所有消息来自不同的时区(州/国家),我想要以我的本地时区显示它们的日期,就像在Gmail应用程序中显示的那样。我搜索了很多关于时区之间转换的资料,但无法解决它,可能是我没有正确理解。我迄今为止尝试的代码如下:(它对大多数消息有效,但对其中一些消息未能正确显示DateTime)
例如:
在Gmail应用程序中显示的时间:2017年11月30日上午2:11 从Gmail API获取的输入/值:2017年11月29日星期三10:11:35 -0800
以下是我当前从gmail收件箱消息中获取的一些值:
任何帮助将不胜感激。谢谢!
例如:
在Gmail应用程序中显示的时间:2017年11月30日上午2:11 从Gmail API获取的输入/值:2017年11月29日星期三10:11:35 -0800
以下是我当前从gmail收件箱消息中获取的一些值:
var re = service.Users.Messages.List("me");
re.LabelIds = "INBOX";
re.Q = "is:all";
var res = re.Execute();
if (res != null && res.Messages != null)
{
foreach (var email in res.Messages)
{
var emailInfoResponse = service.Users.Messages.Get("me", email.Id).Execute();
if (emailInfoResponse != null)
{
foreach (var mParts in emailInfoResponse.Payload.Headers)
{
if (mParts.Name == "Date")
{
date = mParts.Value;
}
}
}
}
}
My Time Zone is: (UTC+08:00) Perth
任何帮助将不胜感激。谢谢!
internalDate
字段比Date
头更可靠。你尝试过使用它吗? - Matt Johnson-Pint