转换字串到日期用以下函数:
dim strDate as string
strdata="1998/06/03"format(CDate(strDate),vblongdate)=1998年6月3日

解决方案 »

  1.   

    不好意思,一点小错
    应该是:
    format(CDate(strDate),"vblongdate")=1998年6月3日 
      

  2.   

    这样就行了,我保证没问题。Z = Format(CDate(X), "yyyy年mm月dd日")
      

  3.   

    问题是输入的多样性
    只要输入IsDate() 通过就行
    September,1994
    Oct,1997
    12/98
    99-12-31
    1997年11月
    怎么判断啊?
      

  4.   

    你什么都不想判断,你又要求高,谁也做不到。这样的问题用不着花太多的精力来对待。如果你的程序是在中国使用,没有人会输入Semptember,1998这样的日期,也不大会有人输入1998年12月21日这样的日期,一般只会输入19981231或者1998/12/31。如果你为了严格,可以强制按照某种格式输入,或者可以用日期控件。总之有很多办法。就是系统提供的有些函数,比如CDate,也是做了很多判断的。比如,你输入11/12,你说是11月12日还是12月11日?CDate是按照11月12日来转换的。这也说明,系统函数也是有强制的,或者说约定的。如果你也允许用户这样输入,请问,你怎么判断?不强制输入格式,又想永远得到正确的内容是不可能的,永远不可能!
      

  5.   

    其实不是这个意思
    我只要想知道输入的成分中包含了日期没有,
    或者说通过什么办法判断一个日期字符串中是否包含了日期。
    简单的说
    1998-9 和 1998-9-1 的区别
    September 1,1998 和 September,1998 的区别
    等等
    输入的日期格式并不重要
      

  6.   

    我们的意思是强制用户使用一种格式输入,你就可以减少很多判断,因为datapicker控件这个控件是VB6的控件,使用鼠标输入日期,格式是固定的,所以会减少很多代码工作量,你看呢?而且现在很多用户也习惯鼠标(我的用户中习惯鼠标的,比熟键盘的多得多),我一直以为VB的长处在于快速编程,象你说的这个问题思考一下可以,但太纠缠了就钻了牛角尖。我对数据库熟,如果这种格式输入数据库的话,数据库也是根据计算机上控制面板中的日期格式来进行判断的。你打开一个ACCESS库新建一个日期字段试试就知道了。------
    我们大家话说得重了点吧?呵呵。我可没有你那么好学哦!
      

  7.   

    我知道你的意思。
    因爲中国人的输入习惯,我想知道用户输入的日期是指定到某一天还是某一个月
    如:
    我要的是“发案时间”,可能是1998年9月(不知道那一天),也可能是1998年9月1日(确定的日期),如何在用户输入的时候区分他们。
    用户输入了 1998-9 当然是指月份而不是日期
    用户输入了 1998-9-1 当然是指日期而不是指月份
    但在日期类型之中 Day()函数都返回 1
    如何区别他们
    这两种输入都是合法的阿。
      

  8.   

    其实问题在于,当得到的日期是某年某月的一日的时候,你不知道到底用户输入的是月份还是年月日都输入了。如果这样,我们就把问题简单化:
    假设 dateStr是用户输入的日期字符串
         DateFld是你转换后获得的日期变量
    是否可以这样:
    当Day(DateFld)=1的时候,获得DateStr中所有的1。
    如果没有1,则:DateFld = # CStr(Year(DateFld) & "-" & CStr(Month(DateFld)) #
    如果有1,则看看其是否与分割符相邻(如果左相邻,则右边不能有除分隔符以外的字符;如果右相邻,则左边不能有分隔符以外的字符),若如此,则日期不变,否则:DateFld = # CStr(Year(DateFld) & "-" & CStr(Month(DateFld)) #
      

  9.   

    确实疏忽了一月这个问题。如果你限制了用户输入日期的格式,那么判断起来就简单了。
    假如你只允许用户输入yyyy/mm,和yyyy/mm/dd这两种格式,去掉日期字符串的左边5个字符,然后找“/”(分隔符)是否存在,如果不存在,就把日期中的日子去掉。
     
      

  10.   

    xxfeiyu(潇湘飞雨) 老弟,
    我们大家看到你的帖子,就帮你想想如何解决。或许没有考虑周全。言语之中,或许说得不甚客气圆润,但总算是在帮你。
    听你上面贴子的语气,似乎在较劲。在看出漏洞后,略带讽刺地反诘。
    从技术角度来说,我上一个帖子的办法有漏洞,如果能给你提示,也算对你有帮助,如果已经是你抛弃的方法,那你也就一笑了之吧。
    大家在此相互切磋,共同进步。如果我误会了你,还望你谅解。