修改日期时间时丢失秒数

时间:2015-08-27 07:16:03

标签: vba excel-vba datetime excel

我有一个Excel宏来修改EXIF"日期和#34; JPG照片的字段。基本上我从我从EXIF数据中检索的日期时间值中添加或减去一个十进制值,然后将新的日期时间值放回去。

例如,如果TimeDelta是12.0,那么它应该将日期时间值提前1/2天(12小时)。如果TimeDelta是36.0,那么它应该将日期时间值提前1天12小时。

它正常工作 - 我输了秒,即日期,小时和分钟是正确的,但是有00秒。

以下是我的代码摘录:

Dim sDateTemp As String, NewDateTaken As Date, TimeDelta As Single, Time24 As Single
Time24 = 24#
NewDateTaken = CDate(sDateTemp) + (TimeDelta / Time24)

关于出了什么问题的任何想法?

1 个答案:

答案 0 :(得分:0)

我不确定你是如何实施转换程序的,但你不应该失去秒数。

Sub t()
    Dim sDateTemp As String, NewDateTaken As Date, TimeDelta As Single, Time24 As Single
    Time24 = 24#
    TimeDelta = Int(12)   'no sense in pretending that we can get a decimal into a single
    sDateTemp = "26-AUG-2015 09:36:45"
    Debug.Print sDateTemp
    Debug.Print CDate(sDateTemp)
    NewDateTaken = CDate(sDateTemp) + (TimeDelta / Time24)
    Debug.Print NewDateTaken
End Sub

VBE立即窗口的结果:

t
26-AUG-2015 09:36:45
08/26/2015 9:36:45 AM 
08/26/2015 9:36:45 PM