我目前正在进行一些代码审查,并注意到系统使用了以下行:
userDOB.ToString("g") --Outputs 15/12/2000 13:45
我的问题是魔术字符串(“g”)。
我不认为/找不到datetime对象具有相同的功能,例如ToShortDateString()(如果确实如此,我会发现它更具可读性)。
日期时间对象上是否有以此格式输出的函数?或者我是否必须创建自定义扩展方法或沿着其他路径前进?
答案 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)