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 關注
- 177 瀏覽
添加回答
舉報