这是我的代码,关于最后一行陈述
的错误“无法将类型'string'隐式转换为'System.TimeSpan'
//Getting the current date and time
DateTime dateTime = DateTime.Now;
//Date
var date = dateTime.Date;
//Time
var time = dateTime.TimeOfDay;
time = time.ToString("HH:mm");
答案 0 :(得分:3)
在代码的第三行中,您使用var声明了名为time(var time = dateTime.TimeOfDay;
)的变量。
Var.此关键字以隐式方式引用类型。它别名任何类型。别名类型由C#编译器确定。这没有性能损失。
因此,变量时间的数据类型是TimeSpan,因为TimeOfDay()
方法返回TimeSpan
,然后在下一行中,您尝试使用类型安全的语言(如C#返回错误。
你应该简单地声明另一个值:
//Getting the current date and time
DateTime dateTime = DateTime.Now;
//Date
var date = dateTime.Date;
//Time
var time = dateTime.TimeOfDay;
var timeOfDayStr = time.ToString("HH:mm");
如果你想以24小时格式获得时间,你应该这样做:
var TimeIn24HrFormat = DateTime.Now.ToString("HH:mm");
答案 1 :(得分:1)
对于小时和分钟,你可以做到:
String.Format("{0:HH:mm}", DateTime.Now)
类似地: 如果你想要完整的格式:
String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)
答案 2 :(得分:1)
您的时间变量是Timespan类型,但您正在尝试为其分配字符串。 C#是一种静态类型语言,因此变量在运行时不能更改类型。只需为您的时间字符串创建一个新变量:
var time = dateTime.TimeOfDay;
var time24hr = time.ToString("HH:mm");