我想在他们提供的日期和时间向不同时区的用户发送通知。
我还没有实现任何东西,但我计划创建一个时间戳列并将所有内容存储在 UTC 中。在提交时,用户将选择一个时区,我将计算偏移量,将其添加到时间戳列中,瞧。

我希望就这么简单,但我的计划缺少夏令时。我无法确定用户是否在 DST 中。

我该如何解决这个问题?我需要额外的列吗?有没有比我计划的更好的方法?

最佳答案

您可以使用 java TimeZone 对象。

<cfset tzObj = createObject("java","java.util.TimeZone") >

您可以获得可用 ID 的列表,例如“美国/太平洋”通过这样做
<cfset tzList = arrayToList(tzObj.getAvailableIDs()) >

如果您可以将 ID 与您的用户地区/时区匹配,您可以执行以下操作:
tzToTest = "US/Pacific"
dateTotest = now()

<!--- determines if dateTotest in tzToTest is in DST --->
<cfset tz = tzObj.getTimeZone(tzToTest) />
<cfset isDaylightSavings = tz.inDaylightTime(dateTotest) />

关于coldfusion - 你如何计算夏令时?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8448540/

10-10 07:12