在.net DateTimePicker控件中显示值和以编程方式获得的值不匹配

本文关键字:方式获 编程 不匹配 控件 DateTimePicker 显示 net | 更新日期: 2023-09-27 18:17:29

我有一个问题,使用。net内置的DateTimePicker控件-有时试图以编程方式从控件获得Value属性,我得到的不是当前显示的相同值。

示例-代码行:

DateTime supposed_date = dtp_StartDate.Value;

尽管dtp_StartDate value显示它设置为"03.03.2013 12:03:05",但我得到supposed_date.Value == "03.03.2013 11:33:07"

这个问题是不一致的,所以我不知道我做错了什么

在.net DateTimePicker控件中显示值和以编程方式获得的值不匹配

Mikhail Tregubov你好,试试这个

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            DateTime SomeDate = dateTimePicker1.Value.ToLocalTime().ToUniversalTime();
        }

它将被设置为确切的值

private void button1_Click(object sender, EventArgs e)
        {
            DateTime Suposed_Date = dateTimePicker1.Value.ToLocalTime().ToUniversalTime();
        }

这是按钮点击

我终于找到了问题的根源:在父表单的一个方法中,包含父控件到DateTimePicker控件,我有一个代码部分,用于更改DateTimePicker日期时间输入的自定义格式掩码。尽管在更改格式后没有引发异常,并且在更改输入值的自定义格式掩码后没有任何代码执行问题的指示-任何用户对DateTimePicker的编辑都不会影响控件的实际Value属性-只是显示值。