日期选择器不能使用自定义格式

时间:2018-11-02 10:25:57

标签: c# sql wpf datepicker

在我的WPF项目中,我有一个DatePicker,但如果输出它,它将给我2018年11月2日。

但是我需要它作为2018-10-2,因为我想要用于SQL。

我尝试了以下代码:

class Foo {
    public string abc {get;set}
}

但是Visual Studio说日期选择器没有格式。

我该怎么办?有没有简单的方法可以将DatePicker格式转换为SQL?

3 个答案:

答案 0 :(得分:2)

  

但是我需要它作为2018-10-2,因为我想要用于SQL。

DateTime控件存储的DatePicker值没有特定的格式。但是,当您将值转换为string时,可以应用格式:

string formattedDate = dpStart.SelectedDate.Value.ToString("yyyy-MM-dd");

但是您应该真正考虑将实际的DateTime值而不是格式化的string传递到您的数据访问层。

答案 1 :(得分:1)

<Style TargetType="{x:Type DatePickerTextBox}">
    <Setter Property="Control.Template">
        <Setter.Value>
            <ControlTemplate>
                <TextBox x:Name="PART_TextBox"
                     Text="{Binding Path=SelectedDate, StringFormat='dd-MM-yyyy', 
                     RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}" />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

使用上面的代码将DatePicker控件的日期的显示格式更改为“ dd-MM-yyyy”

答案 2 :(得分:0)

您可以执行

之类的操作
 DateTime dpStartDate = (DateTime)dpStart.SelectedDate;
 string result = dpStartDate.ToString("yyyy-MM-dd");