我知道我可以做到这一点并且有效
string Dob; //string
Console.WriteLine("Enter date of Birth in format DD/MM/YYYY: ");
Dob = Console.ReadLine();
但我想要这样的东西!预定义的方法或短路方式
DateTime Dob; //DateTime
Console.WriteLine("Enter date of Birth in format DD/MM/YYYY: ");
//What i am expecting, but is not possible as its DateTime
Dob = Console.ReadLine(); // expects a string
是否有一种特定的方法可以直接从键盘将日期记录到Dob变量中。
DateTime类中是否有预定义的方法? 实现这一目标的最佳途径或最短途径是什么?
答案 0 :(得分:6)
String filename = listentry.getName(); // full file name
String[] parts = filename.split("@");
String domain = parts[1].split("\\.")[0];
String[] names = parts[0].split("\\.");
String combinedNames = "";
for (String name : names) {
combinedNames += firstUpper(name) + " ";
}
holder.text.setText(combinedNames + "- " + firstUpper(domain));
// "abc ABC" -> "Abc Abc"
public String firstUpper(String text) {
return (text.substring(0,1).toUpperCase() + text.substring(1).toLowerCase());
}
答案 1 :(得分:1)
此方法使用指定的格式和特定于文化的格式信息将指定的日期和时间字符串表示形式转换为其DateTime等效形式。字符串表示的格式必须与指定的格式完全匹配。
DateTime myDate = DateTime.ParseExact("2009/05/08","yyyy/MM/dd",
System.Globalization.CultureInfo.InvariantCulture)
答案 2 :(得分:1)
您可以通过编写扩展函数来扩展.net中的字符串类。
public static class Extensions
{
public static DateTime? Dob(this string strLine)
{
DateTime result;
if(DateTime.TryParseExact(strLine, "dd/MM/yyyy",System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AdjustToUniversal,out result))
{
return result;
}
else
{
return null;
}
}
}
然后,您可以在任何字符串对象上使用它。请参阅下面的示例,了解我正在谈论的内容。
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please enter your date of birth in DD/MM/YYYY:");
// Option 1.
// The Console.ReadLine() function returns a string.
string strDob = Console.ReadLine();
DateTime? dob1 = strDob.Dob();
// Option 2.
// You can combine the two steps together into one line for smoother reading.
DateTime? dob = Console.ReadLine().Dob();
}
}
注意:DateTime类型末尾的问号(?)转换DateTime" struct"成为一个可以为空的"对象"。如果你设置一个DateTime" struct"等于null它将抛出一个异常作为DateTime?可以设置为null。考虑使用DateTime是一种好习惯吗? (可以为空)而不是使用DateTime" struct"
答案 3 :(得分:0)
到目前为止,这是我发现的最简单,最短的方式,如cubrr所述。
DateTime Dob;
Console.WriteLine("Enter date of Birth in format MM/DD/YYYY: ");
//accepts date in MM/dd/yyyy format
Dob = DateTime.Parse(Console.ReadLine());