我已经实现了一个用于用户生日提醒的Windows服务。 在午夜,该服务将邮件发送给在该特定日期过生日的相应人员。这适用于印度的用户......
现在我的要求是为世界上所有用户提供该服务...... 那么我应该在该服务中加强什么...? 因为印度时间不同于其他国家的时间...... 如果我按照印度时间在午夜解雇这项服务..在印度午夜可能意味着其他国家的时间不同...... Plz建议我一个解决方案。
答案 0 :(得分:2)
最好的是将时间保持在UTC。在这种情况下,您可以根据需要将时间转换回区域时间。
答案 1 :(得分:2)
在标签上显示生日提醒
DateTime birthday = Convert.ToDateTime("1991/12/24");
int years = DateTime.Now.Year - birthday.Year;
birthday = birthday.AddYears(years);
DateTime check = DateTime.Now.AddDays(7);
if ((birthday > DateTime.Now) && (birthday < check))
{
lbbirthday.Text = ("This week is your birthday !!!");
}
有关更多详细信息,您可以阅读show Birthday reminder in asp.net c#
答案 2 :(得分:1)
您需要存储用户时区偏移量并将其添加/减去当地时间,以便了解发布电子邮件的时间...
但说实话,如果电子邮件迟到或早退几小时,用户真的很在意,基本上它仍然是大致相同的一天..
答案 3 :(得分:0)
您可以查看示例here进行时区转换。但你怎么知道这个人在哪里?它是存储在某个地方,如果是的话,你在该地点的哪个时区检查它并根据它发送电子邮件。
答案 4 :(得分:0)
Mate,你正在和程序员交谈。 99.9%的人都知道世界上有不同的时区。 如果您有关于用户位置的信息,您可以使用此问题中的信息来证明用户所在的时区,并在时区的午夜时间发送消息: Web service - current time zone for a city?