1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
public static DateTime ParseDate(this DateTime dateTime, string date, IFormatProvider provider)
{
DateTime dateFormat = new DateTime();
DateTimeFormatInfo dateInfo = provider.GetFormat(typeof(DateTimeFormatInfo)) as DateTimeFormatInfo;
if (dateInfo != null)
{
string pattern = dateInfo.ShortDatePattern;
List<int> listYear = pattern.Select((c, i) => i).Where((c, i) => pattern[i] == 'y').ToList();
List<int> listMonth = pattern.Select((c, i) => i).Where((c, i) => pattern[i] == 'M').ToList();
List<int> listDay = pattern.Select((c, i) => i).Where((c, i) => pattern[i] == 'd').ToList();
int year = 0;
int month = 0;
int day = 0;
for (int i = 0; i < listYear.Count; i++)
{
year += (int)(int.Parse(date[listYear[i]].ToString()) * Math.Pow(10, listYear.Count - 1 - i));
}
for (int i = 0; i < listMonth.Count; i++)
{
month += (int)(int.Parse(date[listMonth[i]].ToString()) * Math.Pow(10, listMonth.Count - 1 - i));
}
for (int i = 0; i < listDay.Count; i++)
{
day += (int)(int.Parse(date[listDay[i]].ToString()) * Math.Pow(10, listDay.Count - 1 - i));
}
dateFormat = new DateTime(year, month, day);
}
return dateFormat;
} |
Partager