以下是我的旧代码,如果输入是这样的,那么效果很好" 01/01/2017"
string monthfrom;
string yearfrom;
string valfrom = "01/01/2017";
valfrom = valfrom.Replace("/", string.Empty);
monthfrom = valfrom.Substring(0, 2);
yearfrom = valfrom.Substring(valfrom.Length - 4);
pdfFormFields.SetField("Month[0]", monthfrom);
pdfFormFields.SetField("Year[0]", yearfrom);
结果:月[0] = 01年[0] = 2017
但是如果输入是这样的1/1/2017,结果将是这样的
月[0] = 11年[0] = 2017
我知道错误的原因是因为这个月来自= valfrom.Substring(0,2); ,所以我把代码更改为这样。
char[] delimiterChars = { '/' };
string text = "1/1/2017";
string[] words = text.Split(delimiterChars);
string result = string.Empty;
foreach (string s in words)
{
result += s;
}//foreach
但我在这里有一个问题,我希望输入有不同的变量,但我不知道该怎么做,也没有一个想法。
如果投入是1/1/2017& 2017年1月1日
输入:2017年1月1日
月= 1天= 1年= 2017
输入:01/01/2017
月= 01,日= 01,年= 2017
答案 0 :(得分:1)
string x = "1/1/2017";
string y = "01/01/2017";
DateTime dateTime;
if (DateTime.TryParse(y, out dateTime))
{
Console.WriteLine($"Day = {dateTime.Day}");
Console.WriteLine($"Month = {dateTime.Month}");
Console.WriteLine($"Year = {dateTime.Year}");
}
else
{
Console.WriteLine("Date cannot be parsed");
}
答案 1 :(得分:0)
解析日期时间,然后获取相关字段。在这种情况下,您不必担心字符串的格式。
public class ParsedDate
{
public int day { get; set; }
public int month { get; set; }
public int year { get; set; }
}
public ParsedDate ParseDate(string inputString)
{
DateTime outDate;
ParsedDate returnObject = new ParsedDate();
if (String.IsNullOrEmpty(inputString))
{
throw new ArgumentException("String can not be empty");
}
DateTime.TryParse(inputString, out outDate);
if (outDate != null)
{
returnObject = new ParsedDate
{
day = outDate.Day,
month = outDate.Month,
year = outDate.Year
};
}
return returnObject;
}