Dim DespatchDate As DateTime
Dim ReceiptDate As DateTime
DespatchDate = #3/7/2017 12:00:00 AM# 'I am in the UK so this is 3rd July 2017
ReceiptDate = DespatchDate.AddDays(60) 'Returns #5/6/2017 12:00:00 AM#
我希望2017年9月1日“2017年1月9日”
我也试过
ReceiptDate = DateAdd("d", 10, DespatchDate) which returned #3/17/2017 12:00:00 AM#
我必须做错事但是什么?
答案 0 :(得分:3)
VB中的日期文字使用美国格式,无论您身在何处。你的代码:
DespatchDate = #3/7/2017 12:00:00 AM# 'I am in the UK so this is 3rd July 2017
正在创建2017年3月7日的日期。阅读有关日期文字的更多信息或使用日期类上的构造函数,使您更清楚自己在做什么。
<强>更新强> 为了确定日期是什么并避免歧义,您可以这样定义:
DespatchDate = New Date(2017, 7, 3) ' Without the time of day, 12AM is implied
DespatchDate = New Date(2017, 7, 3, 12, 34, 56) ' July 3 2017 12:34:56 PM
这样做的好处是你可以在输入代码时从intellisense中看到每个数字的含义。如果其他人编写了代码,您可以调用intellisense来查看每个参数的含义。从我在截图中突出显示的内容可以看出,时间是24小时格式。