我有一个刺痛,我转换为类型(日/月/日)的日期格式为<detail>
<band height="121">
<textField isStretchWithOverflow="true">
<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="0" y="0" width="284" height="120" isPrintWhenDetailOverflows="true"/>
<textElement markup="html">
<font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
<paragraph spacingAfter="20"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{RECIPIENTS}+" "]]></textFieldExpression>
</textField>
</band>
</detail>
我想将此绑定到日期时间选择器选定日期,如下所示
15/08/2016 11:00:00 AM
如果我这样做
var MyDate= "15/08/2016 11:00:00 AM";
DateTimePicker1.SelectedDate = DateTime.ParseExact(MyDate,"dd/mm/yyyy",
CultureInfo.InvariantCulture);
这完美无缺。我怎么能这样做?
答案 0 :(得分:0)
您必须为DatePickerTextBox
在您的窗口中,在<Grid>
开始之前,使用此代码为DatePickerTextBox
<Window.Resources>
<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>
</Window.Resources>
在上面的代码中,您应该关注的是
Text="{Binding Path=SelectedDate, StringFormat='dd/mm/yyyy'
如果您看到,可以为此DatePickerTextBox
中显示的文字定义字符串格式。
现在您应该运行仅使用
的代码版本DateTimePicker1.SelectedDate = DateTime.Now;
这行代码而不是其他三个语句。此代码应以您在上面的代码行中指定的格式格式化字符串。
答案 1 :(得分:-1)
尝试使用:
DateTime.ParseExact("15/08/2016 11:00:00 AM", "dd/MM/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
我为AM / PM格式添加 tt
修改强>
<DatePickerTextBox Text="{Binding Date1, StringFormat='dd/MM/yyyy HH:mm:ss tt'}"></DatePickerTextBox>