You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

测试场景下如何生成时间戳格式的随机单据号?

实现时间戳格式的单据号

没问题,我来帮你把原来的Guid生成逻辑改成时间戳格式~根据测试场景的不同,你可以选下面几种常见的实现方式:

1. 秒级Unix时间戳

这种是从1970年1月1日UTC到当前时间的总秒数,格式是纯数字串,简洁易读:

// 生成秒级Unix时间戳字符串
var DocumentNo = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
editCasePage.FillDocumentNumber(DocumentNo);

2. 毫秒级Unix时间戳

如果测试并发较高,秒级可能出现重复,换成毫秒级会更精准,几乎不会重复:

// 生成毫秒级Unix时间戳字符串
var DocumentNo = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
editCasePage.FillDocumentNumber(DocumentNo);

3. 带日期信息的可读时间戳

如果需要单据号包含直观的日期信息(比如年月日时分秒),可以用自定义日期格式化字符串,这种格式可读性强,加上毫秒后也能保证唯一性:

// 格式示例:20240520143522123(年月日时分秒毫秒)
var DocumentNo = DateTime.Now.ToString("yyyyMMddHHmmssfff");
editCasePage.FillDocumentNumber(DocumentNo);

注意:如果你的测试环境是多时区部署,建议用DateTime.UtcNow代替DateTime.Now,避免时区差异导致的时间偏差。

如果担心极端并发下毫秒级仍有重复,可以在时间戳后面加一段短随机数,进一步降低重复概率:

var timePart = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
var randomPart = new Random().Next(10, 99).ToString();
var DocumentNo = $"{timePart}{randomPart}";
editCasePage.FillDocumentNumber(DocumentNo);

内容的提问来源于stack exchange,提问作者Mutu Arron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:02:46