نوشته شده توسط
marya0030
دوست عزیز با هزار بدبختی تا عیبش فهمیدم البته صددرصد مطمئن نیستم این دو عکس ببینید تفاوت در چیدمان تاریخ در عکس دومی تاریخ عکس گرفته شده اشتباه درج شده همین زمان تبدیل به شمسی مشکل بر میخوورد لطفا راهنمایی کنید
aks me.JPG
mashin.JPG
تاریخی که در Exif ثبت میشه استاندارد داره و باید فرمت "YYYY:MM:DD HH:MM:SS" باشه، اما فرض کنیم شما تصویری دارید که YYYY:MM:DD اش YYYY:DD:MM شده.
اولا try catch فراموش نشه، ثانیا می توانیم Date رو string بخونیم و قبل از تبدیل به DateTime این مورد رو بررسی کنیم :
try
{
using (var reader = new ExifLib.ExifReader(textBox1.Text))
{
string dateTimeText;
var dateRegex = new System.Text.RegularExpressions.Regex("(?<year>\\d{ 4})(?<s1>[^\\d])(?<month>\\d{2})(?<s2>[^\\d])(?<day>\\d{2})");
reader.GetTagValue<string>(ExifLib.ExifTags.DateTi me, out dateTimeText);
var match = dateRegex.Match(dateTimeText);
if ((match.Success))
{
if ((int.Parse(match.Groups["month"].Value) > 12) && (int.Parse(match.Groups["day"].Value) <= 12))
{
dateTimeText = dateRegex.Replace(dateTimeText, "${day}/${month}/${year}");
}
else
{
dateTimeText = dateRegex.Replace(dateTimeText, "${month}/${day}/${year}");
}
var dateTime = DateTime.Parse(dateTimeText, CultureInfo.InvariantCulture);
textBox2.Text = dateTime.ToString("yyyy/MM/dd HH:mm:ss");
}
}
}
catch (Exception ex)
{
textBox2.Text = ex.Message;
}