通过命令符(命令提示符CMD或PowerShell)修改系统时间是一项需要谨慎操作的技术,通常用于系统时间校准、测试环境搭建或特定场景下的时间同步,以下将分CMD和PowerShell两种环境,详细说明修改时间的方法、注意事项及操作示例。
通过命令提示符(CMD)修改时间
CMD是Windows系统基础命令工具,通过内置的date
和time
命令可快速调整系统日期和时间,但需注意其格式限制和权限要求。
打开CMD(管理员权限)
修改系统时间需管理员权限,右键点击“开始”菜单,选择“Windows PowerShell(管理员)”或“命令提示符(管理员)”,在弹出的窗口中点击“是”授权。
查看当前日期和时间
- 查看当前日期:输入
date /T
,按回车,显示格式为“星期 月/日/年”(如“2023/12/31 星期日”)。 - 查看当前时间:输入
time /T
,按回车,显示格式为“HH:MM:AM/PM”(如“14:30:00”)。
修改系统日期
使用date
命令可交互式修改日期,或通过参数直接指定日期。
- 交互式修改:输入
date
,按回车,系统提示“请输入新日期 (MM/DD/YYYY):”,按“月/日/年”格式输入(如“12/31/2023”),按回车确认。 - 参数直接指定:输入
date MM/DD/YYYY
(需替换为实际日期),例如将日期改为2024年1月1日,输入date 01/01/2024
,按回车。
注意:CMD的日期格式默认为“MM/DD/YYYY”,若输入“DD/MM/YYYY”可能导致解析错误(如“31/01/2024”会被识别为“1月31日”而非“31月1日”)。
修改系统时间
使用time
命令可交互式修改时间,或通过参数直接指定时间。
- 交互式修改:输入
time
,按回车,系统提示“请输入新时间:”,按“HH:MM:SS”格式输入(如“14:30:00”),按回车确认。 - 参数直接指定:输入
time HH:MM:SS
(需替换为实际时间),例如将时间改为下午3点15分,输入time 15:15:00
,按回车。
注意:时间格式为24小时制,若需输入12小时制,需添加AM/PM(如“3:15:00 PM”)。
同时修改日期和时间
CMD中需分两步操作,先修改日期再修改时间(或反之),
date 01/01/2024 time 15:15:00
通过PowerShell修改时间
PowerShell功能更强大,支持更灵活的时间格式和增量调整,适合复杂场景操作。
打开PowerShell(管理员权限)
同CMD,需以管理员身份运行,确保拥有系统修改权限。
查看当前日期和时间
- 查看完整时间信息:输入
Get-Date
,按回车,显示日期、时间、星期、时区等详细信息(如“2023年12月31日 14:30:00 星期日”)。 - 仅查看日期或时间:
- 查看日期:
Get-Date -Format "yyyy-MM-dd"
(输出“2023-12-31”)。 - 查看时间:
Get-Date -Format "HH:mm:ss"
(输出“14:30:00”)。
- 查看日期:
修改系统日期和时间
使用Set-Date
命令可直接指定完整日期时间,或通过增量调整(如增加/减少天数、小时)。
-
直接指定日期时间:
Set-Date -Date "2024-01-01 15:15:00"
支持多种格式,如“2024/1/1 15:15”“01-01-2024 3:15 PM”等,PowerShell会自动解析。
-
增量调整时间:
- 增加1天:
Set-Date (Get-Date).AddDays(1)
- 减少2小时:
Set-Date (Get-Date).AddHours(-2)
- 增加30分钟:
Set-Date (Get-Date).AddMinutes(30)
- 增加1天:
指定时区修改时间
若需跨时区调整时间,可先切换时区再修改,
- 查看可用时区:
Get-TimeZone -ListAvailable | Format-Table Id, DisplayName
- 切换至中国标准时间:
Set-TimeZone -Id "China Standard Time"
- 修改时间:
Set-Date -Date "2024-01-01 15:15:00"
CMD与PowerShell命令对比
操作 | CMD命令 | PowerShell命令 |
---|---|---|
查看当前日期 | date /T |
Get-Date -Format "yyyy-MM-dd" |
查看当前时间 | time /T |
Get-Date -Format "HH:mm:ss" |
修改日期 | date MM/DD/YYYY |
Set-Date -Date "yyyy-MM-DD HH:mm:ss" |
修改时间 | time HH:MM:SS |
Set-Date -Date "yyyy-MM-DD HH:mm:ss" |
增量调整时间 | 不支持 | Set-Date (Get-Date).AddHours(1) |
指定时区 | 不支持 | Set-TimeZone -Id "时区ID" |
注意事项
- 管理员权限:无论CMD还是PowerShell,必须以管理员身份运行,否则会提示“拒绝访问”。
- 时间同步服务:Windows默认开启“Windows Time”服务,会自动同步时间服务器,手动修改后可能被覆盖,需禁用该服务:
- CMD:
net stop w32time
(停止服务),sc config w32time start= disabled
(禁用开机自启)。 - PowerShell:
Stop-Service -Name w32time
,Set-Service -Name w32time -StartupType Disabled
。
- CMD:
- 格式匹配:CMD对日期格式严格(MM/DD/YYYY),PowerShell支持更灵活格式(如“yyyy-MM-dd”“dd/MMM/yyyy”),需确保输入正确。
- 系统影响:修改系统时间可能影响依赖时间的应用程序(如证书、日志、计划任务),建议在测试环境操作或提前备份。
相关问答FAQs
Q1:为什么用命令符修改时间后,过一会儿又变回原来的时间?
A:这通常是因为Windows的“Windows Time”时间同步服务处于运行状态,该服务会定期与时间服务器(如time.windows.com)同步时间,覆盖手动修改的值,解决方法:以管理员身份打开CMD或PowerShell,执行net stop w32time
停止服务,sc config w32time start= disabled
禁用开机自启,修改完成后,若需恢复同步,执行sc config w32time start= auto
和net start w32time
即可。
Q2:如何通过命令符将系统时间修改为与互联网时间同步?
A:若需手动同步互联网时间(而非依赖自动同步),可通过以下步骤操作:
- 以管理员身份打开CMD或PowerShell。
- 检查“Windows Time”服务状态:CMD输入
net start w32time
,PowerShell输入Get-Service -Name w32time
,确保服务正在运行。 - 手动同步时间:
- CMD:
w32tm /resync /force
(强制同步时间服务器)。 - PowerShell:
Start-Service -Name w32time
(若未启动),w32tm /resync /force
。
同步完成后,可通过Get-Date
查看时间是否更新为互联网时间。
- CMD:
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15102.html