【问题标题】:Visual Basic add to timestamp dateVisual Basic 添加到时间戳日期
【发布时间】:2016-02-26 00:45:17
【问题描述】:

我正在调整现有的文件传输 Windows 服务,该服务将正在发送的文件重命名为时间戳。出于测试目的,我需要使发送的文件在实际发送前十天显示在目标目录中。例如:如果它是在 2015 年 11 月 23 日发送的,它需要看起来像 2015 年 12 月 3 日到达。

生成文件名的代码行如下所示:

    Dim strFileNameToTransfer As String = My.Settings.FileDirectory.ToString() & Format(Now(), "yyyy") & Format(Now(), "MM") & Format(Now(), "dd")

如果在 2015 年 11 月 23 日发送,文件名会显示在这样的目录中: “20151123.xml” 但我需要它像这样显示: "20151203.xml"

它也需要调整月份,因为测试将跨越到 12 月,现在是 11 月。

就像我说的,这是出于测试目的,所以它需要回到测试结束时的状态。我真的只需要在这里快速修复,但我对 Visual Basic 的了解为零,而且我对一般编程也还是新手。救命!

【问题讨论】:

  • 如果你放弃那些旧的 VB 函数,事情会变得更容易:Dim filname As String = DateTime.Now.AddDays(10).ToString("yyyyMMdd.x\ml") 反斜杠不是错字,它是为了逃避“m”

标签: vb.net timestamp days


【解决方案1】:

您所要做的就是在现有日期的基础上增加 10 天,并将该日期用作您的文件名。您也可以不需要将格式拆分为三个不同的字符串。

    Dim fileDate = Now().AddDays(10)
    Dim strFileNameToTransfer As String = My.Settings.FileDirectory.ToString() & Format(fileDate, "yyyyMMdd")

编辑:

gmiley 是对的,最好用 Path.Combine 代替字符串拼接

Dim NameToTransfer As String = System.IO.Path.Combine(My.Settings.FileDirectory.ToString(), String.Format("{0}.{1}", fileDate.ToString("yyyyMMdd"), "xml"))

【讨论】:

  • 为什么不直接做:Dim NameToTransfer As String = System.IO.Path.Combine(My.Setting.FileDirectory.ToString(), String.Format("{0}.{1}", fileDate.ToString("yyyyMMdd"), "xml")
  • 完美。谢谢大家!
猜你喜欢
  • 2011-09-02
  • 2021-12-03
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多