[英]C# Datetime Conversion
我正在.NET 2.0和SQL Server Express 2005上开发WinForm应用程序。
我面临日期时间转换的问题。
1)我需要在UI上显示“ datetime(datetimepicker)”,例如“ dd / MM / yyyy”,所以我正在使用
public static void ChangeDateFormat(DateTimePicker dtp)
{
dtp.Format = DateTimePickerFormat.Custom;
dtp.CustomFormat = "dd/MM/yyyy";
}
2)用于将数据插入我正在使用的SQL Server
datetimePicker1.ToShortDateString()
3)从SQL Server获取数据
Convert(varchar(10),dt,103)
4)将字符串日期“ 31/03/2013”分配给datetimepiker
public static DateTime StringToDate(string value)
{
IFormatProvider formatProvider = new CultureInfo("en-GB");
DateTime dt = DateTime.Parse(value, formatProvider);
return dt;
}
5)将SQL日期分配给datetimepicker
Select dt from ams
datetimepicker1.value=DateTimeClass.dbDateTime( dt );
public static DateTime dbDateTime(string value)
{
IFormatProvider formatProvider = new CultureInfo("en-US");
DateTime dt = DateTime.Parse(value, formatProvider);
return dt;
}
问题:如果用户更改了Windows的区域或日期格式,则会发生错误。
我很困惑。 我需要使我的应用程序区域独立。
问题不在于您是否要将sql中的字符串转换为DataTime值,而是将DateTime另存为sql服务器中的字符串。 通过将值保存为日期,您不必进行转换并且区域等也没有问题。解决方案应该将sql列更改为日期类型,而不是尝试转换必须从中猜测格式的日期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.