date / time 查看与设置时间
date 与 time 用来查看或设置系统日期时间,加 /t 只显示不修改。域环境里手改时间要格外小心:时钟偏差超过默认的 5 分钟就会导致 Kerberos 认证失败,正确做法是用 w32tm 走校时服务同步。脚本里取时间戳时格式受区域设置影响,跨机器运行容易出问题,建议改用 Get-Date 并明确指定格式。
基本信息
| 适用平台 | Windows CMD / PowerShell |
|---|---|
| 查看(只读) | date /t、time /t |
| 设置 | date 日期、time 时间(需管理员) |
| 域内偏差 | Kerberos 默认容许 5 分钟时钟偏差 |
| 校时命令 | w32tm /resync、w32tm /query /status |
典型使用场景
- 查看当前系统时间,确认日志时间戳是否合理
- 排查域认证失败,检查是否因时钟偏差过大
- 脚本里生成带时间戳的文件名或执行记录
- 手动校时之前先确认是否有可用的时间源
- 核对多台服务器的时区与时间设置是否一致
常用示例
常用示例
date /t REM 只显示当前日期
time /t REM 只显示当前时间
echo %date% %time% REM 脚本取时间戳(格式随区域设置变化)
Get-Date -Format "yyyy-MM-dd HH:mm:ss" REM 推荐:格式可控
w32tm /query /status REM 查看校时源与偏差状态
w32tm /resync REM 立即与时间源同步命令对照
| 命令 | 作用 | 注意 |
|---|---|---|
| date /t | 显示日期 | 只读,不修改系统时间 |
| time /t | 显示时间 | 只读,不修改系统时间 |
| w32tm /resync | 与时间源同步 | 域内推荐做法 |
| Get-Date | 获取时间对象 | 格式可控,适合脚本 |
域内机器手改时间后立刻被同步回去,可能触发偏差告警;排查时钟问题时优先用 w32tm 查询状态并手动同步,而不是直接修改系统时间,这样也不会影响本机依赖时间的服务。
date 与 time 的输入输出格式跟随系统区域设置,写死格式的脚本换一台机器可能直接解析失败;脚本取时间建议用 Get-Date 明确指定格式。需要与外部系统对时间时,统一用带时区的表示方式更不容易出错。