繁体   English   中英

C#日期时间转换

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM