4 回答

TA贡献1936条经验 获得超7个赞
您可以为此使用字符串插值,以使其更清晰易读。另外,不要在你不想要的字符串中放置任何东西......
var filePath = AppDomain.CurrentDomain.BaseDirectory +
$"\\Logs\\import-contacts-{DateTime.Today.AddDays(-1):yyyyMMdd}.csv";
或者(如果你喜欢 1-liner)...
var filePath = $"{AppDomain.CurrentDomain.BaseDirectory}\\Logs\\import-contacts-{DateTime.Today.AddDays(-1):yyyyMMdd}.csv";
这是一个工作示例...
https://dotnetfiddle.net/aYAgVr
注意 DateTime.Now将完全相同,因为您正在格式化输出以仅显示日期部分。我只是对不使用 DateTime 约会感到迂腐!

TA贡献1829条经验 获得超7个赞
.
只需从方法中删除ToString()
。尝试像:
string = AppDomain.CurrentDomain.BaseDirectory + "\Logs\import-contacts-" + DateTime.Now.ToString("yyyyMMdd").Replace('/', ' ') + ".csv";
编辑(根据新要求):
DateTime.Now.AddDays(-1).ToString("yyyyMMdd")

TA贡献1856条经验 获得超17个赞
问题是您依靠当前的文化来提供正确的格式,但当前对不同的用户意味着不同的东西,并且显然不会产生您想要的格式。
解决方案很简单,使用特定的文化来获取特定的格式:
DateTime.Today.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture)
应始终使用点作为分隔符。

TA贡献1827条经验 获得超8个赞
它会为你工作。
string path = string.Format(@"{0}Logs\import-contacts-{1}.csv", new object[] { AppDomain.CurrentDomain.BaseDirectory, DateTime.Now.ToString("yyyyMMdd") });
- 4 回答
- 0 关注
- 188 浏览
添加回答
举报