如何根据用户输入的时间和日期(根据他们的时区)发送提醒电子邮件

时间:2010-03-24 22:31:21

标签: asp.net

我需要根据用户输入的时间和日期(根据他们的时区)发送电子邮件吗?提醒一下。

例如:用户输入我服务器上东部时间下午2:00我有不同的时区,如何计算时间并在用户时区发送电子邮件。

它是一个Web应用程序。使用asp.net c#完成它的最佳方法是什么?如果有人在过去已经完成它,我将很高兴看看源代码。感谢您提供有用的建议。

1 个答案:

答案 0 :(得分:0)

任何时候时区都很重要,存储和操作日期为UTC。如果用户要求在美国东部时间下午2点发送电子邮件,请在18:00 UTC(美国东部时间为UTC时间)发送。

您需要通过询问它来确定它们的时区,或者通过使用类似http://ipinfodb.com(基于IP地址)的方法来确定它们的时区。

在.Net中,您可以使用TimeZoneInfo对象转换时间。

var local = new DateTime(DateTime.Now.Ticks, DateTimeKind.Unspecified);
var tzi = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var utc = TimeZoneInfo.ConvertTimeToUtc(local, tzi);