每个系统,会定义出不同概念的时间。同一个概念时间,在不同系统中,可能会有不同的称谓。而同一个称谓,在不同系统中,也可能指向实际不同的概念。
- 定义:金融市场开放交易的日期
- 特点:不同市场交易日可能不同(考虑时差、节假日)
- 示例:外汇市场周一至周五 24 小时交易,A股周一至周五 9:30-15:00
- 定义:银行或机构正常运营的日期
- 与交易日区别:工作日可能包含非交易日(如银行间市场)
- 计算:通常排除周末和法定节假日
- 定义:连续的日历天数,不区分工作日/节假日
- 用途:计息、合同期限、逾期计算
- 定义:资金或资产实际划转生效的日期
- 别名:结算日、交割日、生效日
- 计算:T+0(当日)、T+1(次日)、T+2(两日后)
- 注意:T 通常指交易日,不是自然日
- 定义:金融工具(存款、贷款、债券)到期的日期
- 与起息日关系:到期 = 起息 + 期限(按自然日或工作日)
- 定义:证券或资产实际完成交割的日期
- 常见周期:
- 股票:T+1(A股)、T+2(港股)、T+0(部分市场)
- 外汇:T+0(现货)、T+1、T+2
- 债券:T+0 或 T+1
| 规则 |
说明 |
| 顺延 |
到期日遇节假日顺延至下一工作日 |
| 提前 |
部分合约可能提前至前一工作日 |
| 不调整 |
按自然日计算,不区分节假日 |
| 方法 |
说明 |
应用场景 |
| ACT/360 |
实际天数/360 |
美元货币市场 |
| ACT/365 |
实际天数/365 |
英镑、港币市场 |
| 30/360 |
每月30天/每年360天 |
美国公司债 |
| ACT/ACT |
实际天数/实际年天数 |
国债、精确计息 |
- 在截止时间点前提交的交易,按当日处理
- 截止时间后的交易,顺延至下一工作日
| 业务类型 |
常见截止时间 |
说明 |
| 大额支付 |
17:00 |
央行大额支付系统 |
| 跨境汇款 |
15:00-16:00 |
各银行不同 |
| 证券交易 |
15:00 |
A股收盘时间 |
| 外汇交易 |
16:00-17:00 |
各银行不同 |
- 发起方时间 ≠ 接收方时间
- 中间行工作时间需考虑
- SWIFT 报文发送时间窗口
- 中国春节 vs 美国感恩节
- 伊斯兰历 vs 公历
- 需要维护多国家节假日表
- 所有时间存 UTC,展示转本地时区
- 明确存储是交易日还是自然日
- 保留原始时区信息
// 示例:计算起息日
LocalDate valueDate = tradingDayCalculator
.addDays(tradeDate, settlementCycle) // T+N
.adjustForHolidays(holidayCalendar); // 节假日调整
- 节假日表可配置(不同市场不同)
- 结算周期可配置(T+0/T+1/T+2)
- 截止时间可配置(各业务不同)
| 中文 |
英文 |
常见别名 |
| 交易日 |
Trading Day |
Business Day, Work Day |
| 起息日 |
Value Date |
Effective Date, Settlement Date |
| 到期日 |
Maturity Date |
Expiry Date, Due Date |
| 工作日 |
Working Day |
Business Day, Banking Day |
| 自然日 |
Calendar Day |
Natural Day |
💡 最佳实践:在系统设计中,永远不要假设时间概念是通用的。必须在文档中明确定义每个字段的时间类型(交易日/自然日/工作日),并在跨系统对接时进行术语对齐。