【问题标题】:Literal strings in a DateTime formatDateTime 格式的文字字符串
【发布时间】:2014-02-07 22:50:08
【问题描述】:

我搜了 SO 来寻找这个问题的答案,找到了"How to add literal strings in a DateTime format?"

我尝试了公认的解决方案,但没有得到我预期的结果。我的代码如下:

DateTime.Now.ToString("'Previously exported on' d 'at' t") 返回“Previous 7 at P”

我原以为它会返回“之前在 2014 年 2 月 7 日下午 05:46 导出”

我也试过了:

DateTime.Now.ToString("'Previously exported on' f") 返回“之前在 0 导出”

但是,如果我只使用简单的格式字符串,我会得到预期的结果:

DateTime.Now.ToString("d") 返回“02/07/2014”
DateTime.Now.ToString("t") 返回“05:46 PM”
DateTime.Now.ToString("f") 返回“2014 年 2 月 7 日星期五 05:46 PM”

我错过了什么? “短”格式字符串不能与文字一起使用吗?

【问题讨论】:

  • 你得到了你想要的。今天是第 7 天,出于某种原因,您只喜欢上午/下午指标的一个字母。你没有说出你真正想要什么,所以现在这只是一个猜谜游戏。

标签: c# datetime format


【解决方案1】:

您始终可以为此使用string.Format,它允许您使用{ index[,alignment][ :formatString] } 指定每个索引的格式。即,

string.Format("Previously exported on {0:d} at {0:t}", DateTime.Now);

看起来重载的 DateTime.ToString(string format) 需要标准或自定义的 DateTime 格式字符串——它不能同时适应这两者。

format 参数应包含单个格式说明符字符(请参阅标准日期和时间格式字符串)或定义返回字符串格式的自定义格式模式(请参阅自定义日期和时间格式字符串)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    相关资源
    最近更新 更多