我想按照用户提供的日期和时间向不同时区的用户发送通知。我还没有实现任何东西,但我计划创建一个时间戳列,并将所有内容存储在UTC中。在提交时,用户将选择一个时区,我将计算偏移量,并将其添加到时间戳列中,瞧!
我希望它是那么简单,但我的计划缺少夏令时。我没有办法找出用户是否在夏令时。
我如何绕过这个?我需要额外的列吗?有没有比我计划的更好的办法?
您可以使用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) />