我正在尝试将日期格式从短日期格式(例如2018年7月31日)重新设置为此自定义格式MMDDYY。因此,如果日期是2018年7月31日,我希望将其设置为073118。
我真的不知道该怎么做。下面的代码使我可以提取第一个斜杠左侧的前两位数字。但是我不确定如何提取其余部分以及如何使用两个斜杠解决提取问题。有人可以引导我朝着正确的方向完成这项工作吗?
If InStr(strRDate, "/") > 0 Then
strRDateL = Left(strRDate, InStr(strRDate, "/")-1)
If Len(strRDateL)=2 Then
subMoveCursor 11, 10
subEnterData strRDateL
End If
End If
答案 0 :(得分:1)
问题不是日期格式之一,而是字符串操作之一。您有一个字符串,它以特定格式表示日期;该任务是删除一些不需要的字符:
Dim aT : aT = Split("07/31/2018,073118 01/01/0001,010101")
Dim sP, aP, sL, sExp, sAct
For Each sP in aT ' get pair
aP = Split(sP, ",") ' split into long anf short parts
sL = aP(0)
sExp = aP(1)
sAct = Left(sL, 2) & Mid(sL, 4, 2) & Right(sL, 2)
WScript.Echo sL, sAct, CStr(sAct = sExp)
Next
输出:
cscript 51617746.vbs
07/31/2018 073118 Wahr
01/01/0001 010101 Wahr
答案 1 :(得分:0)
您需要为字符串函数编写自己的日期。
最简单的方法可能是使用IsDate()
函数来查看您的字符串是否被识别为日期。然后,您可以使用Date
函数将其强制转换为CDate()
对象。
然后,您可以使用其他内置的日期函数来获取日期的Month
,Day
和Year
部分。
strDate = "07/31/2018"
WScript.Echo FormatDate(strDate)
WScript.Echo FormatDateString(strDate)
Function FormatDate(strDate)
If IsDate(strDate) Then
dtmDate = CDate(strDate)
return = Right("0" & Month(dtmDate),2) & Right("0" & Day(dtmDate),2) & Right(Year(dtmDate),2)
Else
return = strDate
End If
FormatDate = return
End Function
如果您不想这样做,另一个选择是直接格式化传入的字符串。这将要求您确定输入字符串将始终采用相同的格式。
Function FormatDateString(strDate)
'Add more error checking?
FormatDateString = Split(strDate,"/")(0) & Split(strDate,"/")(1) & Right(strDate,2)
End Function
例如, 7-31-2018
在FormatDateString
中失败,但是在FormatDate
中成功。
答案 2 :(得分:0)
如果您可以完全确定显示的格式(因为它是日期,所以几乎永远不会,但是仍然),只需将其视为字符串并执行类似的操作即可:
model.fit(train_vectors,train_features,validation_data=(test_vectors,test_features))
这不会检查传递的值是否实际上是日期,但这是我无需借助shuffle=True
即可想到的最短方法。
答案 3 :(得分:0)
这就是我的工作方式。
If InStr(strRDate, "/") > 0 Then
strRDateSplit = Split(strRDate, "/")
subMoveCursor 11, 10
subEnterData strRDateSplit(0) & strRDateSplit(1) & Right(strRDateSplit(2),2)
Else
subMoveCursor 11, 10
subEnterData rw.Cells(3).Value
End If