Time::Fuzzy - Time read like a human, with some fuzziness


    use Time::Fuzzy;

    my $now = fuzzy();
    $Time::Fuzzy::FUZZINESS = 'low'; # or 'high', 'medium' (default)
    my $fuz = fuzzy( DateTime->new(...) );

    my $fuzzy = Time::Fuzzy->new;
    print $fuzzy->as_str;


Nobody will ever say "it's 11:57". People just say "it's noon".

This Perl module does just the same: it adds some human fuzziness to the way computer deal with time.

By default, Time::Fuzzy is using a medium fuzziness factor. You can change that by modifying $Time::Fuzzy::FUZZINESS. The accepted values are low, medium or high.


my $fuzzy = fuzzy( [ $dt ] )

Return the fuzzy time defined by $dt, a DateTime object. If no argument, return the (fuzzy) current time.


If you prefer, you can use Time::Fuzzy in a OOP style. In that case, the following methods are available.

my $fuzzy = Item::Fuzzy->new( [dt=>$dt, fuzziness=>fuzziness] )

This is the constructor. It accepts the following params:

. dt => $dt: a DateTime object, defaults to current time.
. fuzziness => $fuzziness: the wanted fuziness, defaults to current $Time::Fuzzy::FUZZINESS.

Additionally, the accessors dt and fuzziness are available.

my $str = $fuzzy->as_str()

Return the fuzzy string of the current time of the object. This method is also the overloaded stringified method.


Please report any bugs or feature requests to < bug-time-fuzzy at>, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


Time::Fuzzy development takes place on - feel free to join us.

You can also look for information on this module at:


Jerome Quelin, <jquelin at>


Copyright (c) 2007 Jerome Quelin, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.