Time.parse of empty string returns Time.now?

Discussion in 'Ruby' started by Peter Krantz, Aug 20, 2006.

  1. Peter Krantz

    Peter Krantz Guest

    Hi!

    I am Ruby newbie and have a question regarding Time.parse(). I am
    using Time.parse to scan arbitrary strings for a datetime value. When
    I feed strings that have no datetime value in them Time.parse seems to
    return Time.now.

    How can I check if my string has a datetime value in it? I would
    rather have Time.parse return nil if there wasn't any value in the
    string. Right now it seems like I am unable to tell if there was a
    datetime fragment in the string or not. There is no way to say if the
    string contained a datetime value == now or if it was empty.

    Example:

    > reactor_shutdown = Time.parse("Never")

    => Sun Aug 20 23:05:33 CEST 2006

    Regards,

    Peter
    Peter Krantz, Aug 20, 2006
    #1
    1. Advertising

  2. On Aug 20, 2006, at 5:07 PM, Peter Krantz wrote:

    > Hi!
    >
    > I am Ruby newbie and have a question regarding Time.parse(). I am
    > using Time.parse to scan arbitrary strings for a datetime value. When
    > I feed strings that have no datetime value in them Time.parse seems to
    > return Time.now.
    >
    > How can I check if my string has a datetime value in it? I would
    > rather have Time.parse return nil if there wasn't any value in the
    > string. Right now it seems like I am unable to tell if there was a
    > datetime fragment in the string or not. There is no way to say if the
    > string contained a datetime value == now or if it was empty.
    >
    > Example:
    >
    >> reactor_shutdown = Time.parse("Never")

    > => Sun Aug 20 23:05:33 CEST 2006
    >
    > Regards,
    >
    > Peter
    >


    This is a bit of a hack but:

    def parse_time(s)
    if Date._parse(s).empty?
    nil
    else
    Time.parse(s)
    end
    end

    irb(main):020:0> parse_time("Never")
    => nil
    irb(main):021:0> parse_time("2:00 pm")
    => Sun Aug 20 14:00:00 EDT 2006
    Logan Capaldo, Aug 20, 2006
    #2
    1. Advertising

  3. Peter Krantz

    Guest

    On Mon, 21 Aug 2006, Peter Krantz wrote:

    > Hi!
    >
    > I am Ruby newbie and have a question regarding Time.parse(). I am
    > using Time.parse to scan arbitrary strings for a datetime value. When
    > I feed strings that have no datetime value in them Time.parse seems to
    > return Time.now.
    >
    > How can I check if my string has a datetime value in it? I would
    > rather have Time.parse return nil if there wasn't any value in the
    > string. Right now it seems like I am unable to tell if there was a
    > datetime fragment in the string or not. There is no way to say if the
    > string contained a datetime value == now or if it was empty.
    >
    > Example:
    >
    >> reactor_shutdown = Time.parse("Never")

    > => Sun Aug 20 23:05:33 CEST 2006
    >
    > Regards,
    >
    > Peter


    irb(main):001:0> require 'date'
    => true

    irb(main):002:0 reactor_shutdown = DateTime.parse "Never"
    ArgumentError: 3 elements of civil date are necessary
    from /home/ahoward//lib/ruby/1.8/date.rb:1214:in `new_with_hash'
    from /home/ahoward//lib/ruby/1.8/date.rb:1258:in `parse'
    from (irb):3

    irb(main):003:0> reactor_shutdown = DateTime.parse "2006-00-24"
    ArgumentError: invalid date
    from /home/ahoward//lib/ruby/1.8/date.rb:1173:in `civil'
    from /home/ahoward//lib/ruby/1.8/date.rb:1216:in `new_with_hash'
    from /home/ahoward//lib/ruby/1.8/date.rb:1258:in `parse'
    from (irb):4


    -a
    --
    to foster inner awareness, introspection, and reasoning is more efficient than
    meditation and prayer.
    - h.h. the 14th dali lama
    , Aug 20, 2006
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Hanif
    Replies:
    6
    Views:
    17,744
    Paul Lutus
    Oct 17, 2003
  2. Replies:
    19
    Views:
    1,121
    Daniel Vallstrom
    Mar 15, 2005
  3. Replies:
    4
    Views:
    5,490
    Manfred Rosenboom
    Aug 3, 2007
  4. Simon Strandgaard

    [bug] String#split returns extra empty string

    Simon Strandgaard, May 31, 2004, in forum: Ruby
    Replies:
    8
    Views:
    336
    David A. Black
    Jun 1, 2004
  5. John Carter

    a=Time.now;(Time.parse(a.to_s)-a)!=0

    John Carter, Oct 26, 2007, in forum: Ruby
    Replies:
    3
    Views:
    152
    ara.t.howard
    Oct 26, 2007
Loading...

Share This Page