For the complete documentation index, see llms.txt. This page is also available as Markdown.

时间戳

以 Discussions 附件命名理解纪元与经过时间。

Timestamp 以指定纪元计算时间点或经过时间。Discussions 的附件上传使用 Millennium 纪元的累计天数作为文件名的一部分,与随机后缀组合。

来源:src/api/Controllers/FileController.cs(节选;上下文见源文件)。

FileController.cs
var infos = this.Accessor.Write(this.Request,
							  this.DataService.GetDirectory(id),
							  args => args.FileName = $"{Timestamp.Millennium.Epoch.GetElapsed().Days}-{Randomizer.GenerateString()}", cancellation);

这段代码位于 UploadAsync:Request 来自当前 HTTP 请求,目录由 FileService 决定,cancellation 来自调用方。它没有把文件名中的天数当作业务主键或访问权限。

纪元、单位与时区

Unix 和 Millennium 是不同起点。跨系统传递时间值时,必须同时约定起点和单位;仅传一个数字不足以判断它表示秒、毫秒、天数还是 ticks。时区展示也应与持久化时间约定区分。

与业务审计时间的区别

Discussions 的 CreatedTime、ModifiedTime 等审计字段由 DataValidator 使用 DateTime.Now 填写。附件名称使用纪元天数,不代表整个模块已经统一采用 Unix 时间戳。审计策略见数据服务。

方法和边界可核对 Timestamp 源码及对应测试。

最后更新于