我在单独的循环迭代中生成两组重复事件,但在比较生成的冲突结果时发生冲突.这似乎是时候倒退,我不确定如何解决这个问题?
第一个重复事件将:
第二个重复事件将:
为了生成我每天在当地时区"Europe/Stockholm"使用Nodatime循环的事件,如下所示:
String timeZone = "Europe/Stockholm";
for (ZonedDateTime date_Local = repeatSeriesStartDate_Local; date_Local <= LoopEndDate_Local; date_Local = new ZonedDateTime(Instant.FromDateTimeUtc(date_Local.ToDateTimeUtc().AddDays(1).ToUniversalTime()),timeZone))
Run Code Online (Sandbox Code Playgroud)
我的问题出现在2016年10月29日/ 30日当时钟倒退且第二规则与第一规则冲突时. http://www.timeanddate.com/time/change/sweden/stockholm?year=2016
冲突时间如下:
我正在使用像这样的算法来测试冲突 /sf/answers/22817511/
我该如何处理这些时移的冲突?
var easternTimeZone = DateTimeZoneProviders.Tzdb[timeZoneIdentifier];
Run Code Online (Sandbox Code Playgroud)
使用 NodaTime 我应该如何验证当字符串 timeZoneIdentifier 设置为有效的 IANA 字符串(如“Europe/Stockholm”)时,它被视为有效但不支持的 IANA 字符串被拒绝。
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
我正在构建ac#calendar应用程序并将所有日期时间存储在Microsoft SQL-Server DateTime2类型中.此数据类型可使用">","> ="等运算符进行搜索.
我现在已经阅读了有关该主题的更多信息,例如这些帖子:
以UTC格式存储时间总是一个好主意,还是在本地时间存储更好?
我相信在使用UTC和处理不同的DST值时,尤其是在与未来重复事件相关时,我犯了一个错误.
我当前的实现适用于事件,直到重复序列超过DST时间更改.
我相信我现在需要存储当地时间,当地时区和可能的UTC时间
我应该如何构建我的数据库以及我应该使用哪些数据类型将数据存储在数据库中,该数据库将支持不同的客户端时区和DST值,同时还允许我查询指定的开始和停止日期时间范围内的匹配?
使用nodatime如何在ZonedDateTime时区中找到两个ZonedDateTime对象之间的区别.
编辑 - 示例:
例如,我在时区中有两个日期,让我们使用"欧洲/斯德哥尔摩"时间.
这些是在服务器上计算的,该服务器的本地时间设置为"America/Los_Angeles".
我希望在"欧洲/斯德哥尔摩"时区中获得两个时段之间的毫秒数,同时忽略服务器的本地时间.这是因为如果部署到不同的服务器,服务器本地时间可能会更改,如果发生这种情况,我不希望更新代码.
我知道在.net C#中使用"using"关键字实现SQL Server事务的解决方案,以及如下代码:
InsertDetails()
{
using (TransactionScope ts = new TransactionScope())
{
InsertName();//SQL functions to insert name into name table
Insertaddress();//SQL functions to insert address into address table
InsertPhoneNo();//SQL functions to insert phone number into contact table
ts.Complete();
}
}
Run Code Online (Sandbox Code Playgroud)
但是比方说,我希望将sql server事务作为参数传递给不同数据库查询的许多不同函数,而不需要使用using语句示例.
在调用代码路径中的所有函数之后,我想调用提交数据,如果出现问题,则执行回滚.
伪代码看起来像这样
InsertDetails()
{
var transaction = new Transaction();
var sqlcon = new SqlConnection();
InsertName(transaction, sqlcon);//SQL functions to insert name into name table
Insertaddress(transaction, sqlcon);//SQL functions to insert address into address table
InsertPhoneNo(transaction, sqlcon);//code to insert phone no …Run Code Online (Sandbox Code Playgroud)