是否可以指定自定义日期格式而不是使用ToString(“g”)

时间:2016-12-01 23:47:39

标签: c# asp.net .net asp.net-mvc

我目前正在进行一些代码审查,并注意到系统使用了以下行:

userDOB.ToString("g") --Outputs 15/12/2000 13:45

我的问题是魔术字符串(“g”)。

我不认为/找不到datetime对象具有相同的功能,例如ToShortDateString()(如果确实如此,我会发现它更具可读性)。

日期时间对象上是否有以此格式输出的函数?或者我是否必须创建自定义扩展方法或沿着其他路径前进?

4 个答案:

答案 0 :(得分:1)

我想您可能正在寻找以下内容:

userDOB.ToString("dd/MM/yyyy HH:mm")

答案 1 :(得分:1)

  

是否可以指定自定义日期格式而不是使用   的ToString(“G”)?

这是一个可能的答案。它按以下格式转换为时间:

日/月/年小时:分钟

 var dateTime = DateTime.Now.ToString("dd/MM/yyyy HH:mm");
  

日期时间对象上是否有以这种格式输出的函数?

有类似ToShortDateString()的方法,但它仍然与您描述的格式不同。

  

我是否必须创建自定义扩展方法或其他方法   路径?

根据我个人的意见,您可以使用更具描述性的名称创建扩展方法,但我更喜欢声明一些常量变量,该变量保存有关您的特定格式的值,并填充该变量。配置文件。

var dateTime = DateTime.Now.ToString(_someMoreDescriptiveDateTimeFormat);

扩展方法方法的好主意可能是这样的:

        var dateTimeString = DateTime.Now.ToFormattedString();

这里是用解释性数据记录的方法的实现。它也可以在审查期间提供帮助。

        /// <summary>
        /// Convert DateTime object into specially formated string.
        /// </summary>
        /// <param name="dateTime">DateTime which will be converted.  </param>
        /// <returns>Custom date and time string.</returns> 
        public static string ToFormattedString(this DateTime dateTime)
        {
            return dateTime.ToString("dd/MM/yyyy HH:mm");
        }

答案 2 :(得分:0)

MSDN上的DateTime格式有两个完整的页面。放在这里太多了。

标准格式(此处显示'g'): https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx

自定义: https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

答案 3 :(得分:0)

这是它的工作原理

String.Format("{0:d/M/yyyy HH:mm:ss}", userDOB);

样本输出

// "9/3/2008 16:05:07" - english (en-US)