为了账号安全,请及时绑定邮箱和手机立即绑定

如何更改 datetime.Now 没有特殊字符?

如何更改 datetime.Now 没有特殊字符?

C#
POPMUISE 2023-04-29 09:52:27
我正在将数据从 SQL 查询导出到 CSV,然后将 csv 文件重命名为带日期的名称,但是我在将 csv 文件重命名为没有任何特殊字符时遇到问题。我试过替换“。” 或带有空格的“/”,但这对我来说没有成果。我的代码如下:string filepath1 = AppDomain.CurrentDomain.BaseDirectory + "\\Logs\\import-contacts-" +                    DateTime.Now.Date.ToString("yyyy.MM.dd").Replace('/', ' ') + ".csv";我的输出应该是 import-contacts-20190606.csv但是我现在正在获取 import-contacts-2019.06.06.csv。我怎样才能修复我的输出?
查看完整描述

4 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

您可以为此使用字符串插值,以使其更清晰易读。另外,不要在你不想要的字符串中放置任何东西......


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 约会感到迂腐!


查看完整回答
反对 回复 2023-04-29
?
千巷猫影

TA贡献1829条经验 获得超7个赞

.只需从方法中删除ToString() 。尝试像:

string  = AppDomain.CurrentDomain.BaseDirectory + "\Logs\import-contacts-" + DateTime.Now.ToString("yyyyMMdd").Replace('/', ' ') + ".csv";

编辑(根据新要求):

DateTime.Now.AddDays(-1).ToString("yyyyMMdd")


查看完整回答
反对 回复 2023-04-29
?
慕慕森

TA贡献1856条经验 获得超17个赞

问题是您依靠当前的文化来提供正确的格式,但当前对不同的用户意味着不同的东西,并且显然不会产生您想要的格式。

解决方案很简单,使用特定的文化来获取特定的格式:

DateTime.Today.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture)

应始终使用点作为分隔符。


查看完整回答
反对 回复 2023-04-29
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

它会为你工作。

string path = string.Format(@"{0}Logs\import-contacts-{1}.csv", new object[] { AppDomain.CurrentDomain.BaseDirectory, DateTime.Now.ToString("yyyyMMdd") });


查看完整回答
反对 回复 2023-04-29
  • 4 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信