【问题标题】:Is there a standard for storing and parsing strings for calendar date recurrence?是否有存储和解析日历日期重复字符串的标准?
【发布时间】:2012-04-21 08:07:38
【问题描述】:

我正在尝试将重复事件信息存储到数据库中。我想将记录器存储到具有以下字段的数据库表中。

  • 开始日期 - 日期时间
  • 结束日期 - 日期时间
  • RecurrencePattern - 字符串

我想看看是否已经有一些标准格式来存储 RecurrencePattern 和一个关联的库来解析这个字符串 recurrenPattern 和一个开始/结束日期并转换成一组日期。我看到 this exists 用于 javascript,所以可能是 C# 或类似的端口?

要将事件序列化到数据库,我真的必须创建一个新的 iCalendar 并为每个事件序列化一个日历吗?有没有办法使用这个库简单地将事件本身序列化到数据库?

根据 Jon Skeet 的回答更新了关于 DDay.iCal 的问题:

根据 jon skeet 的建议,我开始查看 DDay.iCal,它看起来非常好。我的一个后续问题是,在示例中,它似乎一次只能从磁盘读取一个完整的 ical (ics)。就我而言,我只是将事件独立存储在数据库表中。最好的方法是什么:

  1. 从数据库中读取这些事件
  2. 将独立事件保存到数据库(每个事件是数据库表中的一行)

使用这个库?

【问题讨论】:

  • 与您的问题没有直接关系,但可以在here (pdf)找到一个很好的表示日历中重复出现的模型
  • 你也可以存储一个 cron 字符串。这将代表事件的重复发生。

标签: c# sql-server datetime recurrence rfc5545


【解决方案1】:

DDay.iCal 库。不能说我用过它,但这是快速搜索 iCalendar 和 C# 找到的那个...(iCalendar 或 RFC 5545 是 Javascript 格式的来源。)

根据我在其他平台上处理这些事情的经验,重复真的很快就会变得复杂。如果您能从一开始就限制您的范围,那么您将在 IMO 取得更大的成功。

【讨论】:

  • 感谢 Jon,这个库似乎非常有用。鉴于我将每个事件持久化到数据库表中的一行,我添加了一个关于持久化最佳方法的想法的后续问题。
  • @leora:我怀疑你可以坚持 RRULE,但我已经有一段时间没有做任何 iCal 工作了。
猜你喜欢
  • 2019-08-26
  • 1970-01-01
  • 2012-12-15
  • 2013-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-21
  • 1970-01-01
相关资源
最近更新 更多