public static string GetFormat(DateFormatEnum format) { switch (format) { case DateFormatEnum.DateLong: return("D"); case DateFormatEnum.DateShort: return("d"); case DateFormatEnum.TimeShort: return("t"); case DateFormatEnum.TimeLong: return("T"); case DateFormatEnum.DateTimeFullLong: return("F"); case DateFormatEnum.DateTimeFullShort: return("f"); } return(""); }
public Context ( DataTypeEnum dataTypeId, bool isRequired, bool hasDefaultValue, string defaultValue, string fileTypeDescription, int?substringStart, int?substringLength, int?fieldFormatId, string fieldDisplayName, string fieldDescription, string targetTableName, string targetFieldName ) { _dataTypeId = dataTypeId; _dataType = GetTypeFromDataType(_dataTypeId); _isRequired = isRequired; _hasDefaultValue = hasDefaultValue; _defaultValue = defaultValue; _fileTypeDescription = fileTypeDescription; _substringStart = substringStart; _substringLength = substringLength; _fieldFormatId = fieldFormatId; if (_fieldFormatId.HasValue) { if (_dataTypeId == DataTypeEnum.DecimalCurrency) { CurrencyFormatEnum patternEnum = (CurrencyFormatEnum)fieldFormatId; _fieldFormatDescription = patternEnum.GetDisplayDescription(); } else if (_dataTypeId == DataTypeEnum.DecimalPercent) { PercentFormatEnum patternEnum = (PercentFormatEnum)fieldFormatId; _fieldFormatDescription = patternEnum.GetDisplayDescription(); } else if (_dataTypeId == DataTypeEnum.Date) { DateFormatEnum patternEnum = (DateFormatEnum)fieldFormatId; _fieldFormatDescription = patternEnum.GetDisplayDescription(); } else if (_dataTypeId == DataTypeEnum.Time) { TimeFormatEnum patternEnum = (TimeFormatEnum)fieldFormatId; _fieldFormatDescription = patternEnum.GetDisplayDescription(); } } _fieldDisplayName = fieldDisplayName; _fieldDescription = fieldDescription; _targetTableName = targetTableName; _targetFieldName = targetFieldName; }
internal string ConvertDate(DateTime?value, int?fieldFormatId, int?length) { if (!fieldFormatId.HasValue) { return(length.HasValue ? new string(' ', length.Value) : ""); } if (!value.HasValue) { return(length.HasValue ? new string(' ', length.Value) : ""); } DateFormatEnum patternEnum = (DateFormatEnum)fieldFormatId; string pattern = patternEnum.GetDisplayDescription(); CultureInfo cultureInfo = CultureInfo.CurrentCulture; switch (pattern) { case "MM/dd/yyyy": case "MM/dd/yy": case "MM-dd-yy": case "MM-dd-yyyy": case "MMM-dd-yy": case "MMM-dd-yyyy": case "MMM-yy": case "MMM-yyyy": case "M/d/yyyy": case "yyyy-MM-dd": case "yyMMdd": case "ddMMyy": case "MMddyyyy": case "yyddMM": case "yyyyddMM": case "yyyyMMdd": case "dd-MMM-yy": case "MMddyy": case "Mddyy": case "Mddyyyy": case "#yyyy-MM-dd#": return(value.Value.ToString(pattern, cultureInfo)); case "MMddyy/Mddyy": case "MMddyyyy/Mddyyyy": if (length.HasValue && length.Value == 5) { return(value.Value.ToString("Mddyy", cultureInfo)); } if (length.HasValue && length.Value == 6) { return(value.Value.ToString("MMddyy", cultureInfo)); } if (length.HasValue && length.Value == 7) { return(value.Value.ToString("Mddyyyy", cultureInfo)); } if (length.HasValue && length.Value == 8) { return(value.Value.ToString("MMddyyyy", cultureInfo)); } return(length.HasValue ? new string(' ', length.Value) : ""); case "yyyyJJJ": return(value.Value.Year.ToString("0000", cultureInfo) + value.Value.DayOfYear.ToString("000", cultureInfo)); case "yyJJJ": return(value.Value.Year.ToString("0000", cultureInfo).Substring(2) + value.Value.DayOfYear.ToString("000", cultureInfo)); case "JJJyy": return(value.Value.DayOfYear.ToString("000", cultureInfo) + value.Value.Year.ToString("0000", cultureInfo).Substring(2)); case "JJJyyyy": return(value.Value.DayOfYear.ToString("000", cultureInfo) + value.Value.Year.ToString("0000", cultureInfo)); default: return(length.HasValue ? new string(' ', length.Value) : ""); } }
public static DateTime?ParseDate(string value, int?fieldFormatId) { if (!fieldFormatId.HasValue) { return(null); } if (String.IsNullOrWhiteSpace(value)) { return(null); } if (String.IsNullOrWhiteSpace(value.Trim().Trim('-', '/', '0'))) { return(null); } if (value.Trim().IndexOf(' ') > 0) { value = value.Trim(); int position = value.IndexOf(' '); value = value.Substring(0, position); } DateFormatEnum patternEnum = (DateFormatEnum)fieldFormatId; string pattern = patternEnum.GetDisplayDescription(); var parseExactFormats = new List <string>() { "MM/dd/yyyy", "MM/dd/yy", "MM-dd-yy", "MM-dd-yyyy", "MMM-dd-yy", "MMM-dd-yyyy", "MMM-yy", "MMM-yyyy", "M/d/yyyy", "yyyy-MM-dd", "yyMMdd", "ddMMyy", "MMddyyyy", "yyddMM", "yyyyddMM", "yyyyMMdd", "dd-MMM-yy", "MMddyy", "Mddyy", "Mddyyyy", }; CultureInfo cultureInfo = CultureInfo.CurrentCulture; DateTime iResult; int jDays; int iYear; switch (pattern) { case "MM/dd/yyyy": case "MM/dd/yy": case "MM-dd-yy": case "MM-dd-yyyy": case "MMM-dd-yy": case "MMM-dd-yyyy": case "MMM-yy": case "MMM-yyyy": case "M/d/yyyy": case "yyyy-MM-dd": case "yyMMdd": case "ddMMyy": case "MMddyyyy": case "yyddMM": case "yyyyddMM": case "yyyyMMdd": case "dd-MMM-yy": case "MMddyy": case "Mddyy": case "Mddyyyy": var dt = DateTime.MinValue; var result = DateTime.TryParseExact(value, pattern, cultureInfo, DateTimeStyles.AssumeLocal, out dt); if (result) { return(dt); } foreach (var ptrn in parseExactFormats) { result = DateTime.TryParseExact(value, ptrn, cultureInfo, DateTimeStyles.AssumeLocal, out dt); if (result) { return(dt); } } return(null); //throw new InvalidOperationException("DateTime could not be parsed"); //return DateTime.ParseExact(value, pattern, cultureInfo); case "#yyyy-MM-dd#": return(DateTime.ParseExact(value.Trim('#'), pattern.Trim('#'), cultureInfo)); case "MMddyy/Mddyy": case "MMddyyyy/Mddyyyy": if (value.Length == 5) { return(DateTime.ParseExact(value, "Mddyy", cultureInfo)); } if (value.Length == 6) { return(DateTime.ParseExact(value, "MMddyy", cultureInfo)); } if (value.Length == 7) { return(DateTime.ParseExact(value, "Mddyyyy", cultureInfo)); } if (value.Length == 8) { return(DateTime.ParseExact(value, "MMddyyyy", cultureInfo)); } return(null); case "yyyyJJJ": jDays = Convert.ToInt32(value.Substring(4, 3)); iYear = Convert.ToInt32(value.Substring(0, 4)); iResult = new JulianCalendar().AddDays(new DateTime(iYear, 1, 1), jDays - 1); return(iResult); case "yyJJJ": jDays = Convert.ToInt32(value.Substring(2, 3)); iYear = Convert.ToInt32(value.Substring(0, 2)); iResult = new JulianCalendar().AddDays(new DateTime(iYear, 1, 1), jDays - 1); return(iResult); case "JJJyy": jDays = Convert.ToInt32(value.Substring(0, 3)); iYear = Convert.ToInt32(value.Substring(3, 2)); iResult = new JulianCalendar().AddDays(new DateTime(iYear, 1, 1), jDays - 1); return(iResult); case "JJJyyyy": jDays = Convert.ToInt32(value.Substring(0, 3)); iYear = Convert.ToInt32(value.Substring(3, 4)); iResult = new JulianCalendar().AddDays(new DateTime(iYear, 1, 1), jDays - 1); return(iResult); default: return(DateTime.Parse(value, cultureInfo)); } }