问题:调用以下过程并传递一个参数如“2006-11-2-40-55”(表示2006年11月2日2点40分55秒),但每次调用后都得不到想要的时间。不知哪里有问题,望指点!'调整系统日期
Public Sub SetComputerTime(newDate As String) '//newDate格式为:2006-11-2-13-40-55
On Error GoTo Q
Dim newSysTime As SYSTEMTIME
Dim s() As String
If newDate = "" Then Exit Sub
s = Split(newDate, "-")
With newSysTime
.wYear = (s(0))
.wMonth = (s(1))
.wDay = (s(2))
.wHour = (s(3))
.wMinute = (s(4))
.wSecond = (s(5))
.wMilliseconds = 0
End With
Call SetSystemTime(newSysTime)
Q:
End Sub
Public Sub SetComputerTime(newDate As String) '//newDate格式为:2006-11-2-13-40-55
On Error GoTo Q
Dim newSysTime As SYSTEMTIME
Dim s() As String
If newDate = "" Then Exit Sub
s = Split(newDate, "-")
With newSysTime
.wYear = (s(0))
.wMonth = (s(1))
.wDay = (s(2))
.wHour = (s(3))
.wMinute = (s(4))
.wSecond = (s(5))
.wMilliseconds = 0
End With
Call SetSystemTime(newSysTime)
Q:
End Sub
.wYear = (s(0)) '你为什么要在s(0)左右加上括号呢?这样不行吗?.wYear=s(0)
你可以相应将小时减八后再用API函数设置。。
CONST SYSTEMTIME *lpSystemTime // address of local time to set
);
SetSystemTime与SetComputerTime是有区别的。具体区别没去研究。
楼主可以测试一下两个时间的差别。
如systemtime与filetime一样。他们之间也是有区别的。
如果你是要修改文件时间我可以提供代码。