对DTPicker控件的值进行格式转化,假如DTPicker1.value=2004/01/01,
cstr(DTPicker1.value)的值应该是多少?我拿转换完的值和"2004/01/01"作比较,为什么被判断为不相等?

解决方案 »

  1.   

    試試 MsgBox ForMat$(DTPicker1.value,"YYYY/MM/DD") = "2004/01/01"
      

  2.   

    拿string 和date比较当然不等
      

  3.   

    leolan说的对。 设置为一定的格式后在比较。
      

  4.   

    cstr()将日期转化为字符串,而dtpicker.value为日期型,所有不会相等
      

  5.   

    还是没明白。
    cstr(dtpicker1.value)转换结果是个字符串吧?"2004/01/01"也是个字符串吧?为什么类型不相同??????
    to leolan:用format进行格式设定我也试过,还是判断不相等。
      

  6.   

    dtpicker1.value是日期型.里面可能含有小时或者分等其他日期型的数据.而且dtpicker1.value的值取决于系统设置.可以通过控制面版进行调整显示的格式.所以你直接这样转换cstr得到什么,你自己可以测试啊.是否有空格等等?
      

  7.   

    正是因为测试了cstr(dtpicker1.value)="2004/01/01"所以我才困惑!
      

  8.   

    //用format进行格式设定我也试过,还是判断不相等。
    不可能呀,你是怎麼試的?Option ExplicitPrivate Sub Form_Load()
        DTPicker1.Value = "2004/01/01"
        MsgBox Format$(DTPicker1.Value, "YYYY/MM/DD") = "2004/01/01"   'True
    End Sub
      

  9.   

    代码没有什么问题,关键是使用的DTPicker1.Value值"2004/01/01"的格式是和系统的[时区设置]相关的,还有可能是比如"2004-1-1"等,确实要看该计算机的设置。