Skip to main content

Time utilities in Python

Project description

Time Utilities

Time utilities in Python.

PyPI PyPI - Python Version PyPI - License PyPI - Downloads PyPI - Downloads Coverage Status GitHub code size in bytes GitHub last commit DeepSource

TimeUtil class

Methods

Method Description Parameters Returns
date_ms_to_date_str Converts a date in milliseconds to a date string. date_ms (int) The date in milliseconds to convert to a date string.
format_str (str, Default: YMD_HMSF_DATE_FORMAT) The format string to convert the date to.
str The date string.
date_ms_to_date_time Converts a date in milliseconds to a date time object. date_ms (int) The date in milliseconds to convert to a date time object. datetime The date time object.
date_str_to_date_time Converts a date string to a date time object. date_str (str) The date string to convert to a date time object.
format_str (str, Default: YMD_HMSF_DATE_FORMAT) The format string to convert the date to.
datetime The date time object.
date_time_to_date_ms Converts a date time object to a date in milliseconds. dt (datetime) The date time object to convert to a date in milliseconds. int The date in milliseconds.
get_current_date_ms Returns the current date in milliseconds. int The current date in milliseconds.
get_timezone_offset_hours Returns the timezone offset in hours. timezone_str (str) A string representing the timezone int The timezone offset in hours.
is_leap_year Checks if a year is a leap year. year (int) The year to check if it is a leap year. bool True if the year is a leap year, False otherwise.
is_timeout_ms Checks if a timeout in milliseconds has passed. start_time_ms (int) The start time in milliseconds.
timeout_ms (int) The timeout in milliseconds.
bool True if the timeout has passed, False otherwise.
is_date_in_format Checks if a date string is in a specific format. date_str (str) The date string to check.
format_str (str) The format string to check.
bool True if the date string is in the format, False otherwise.

Examples:

  • TimeUtil.date_ms_to_date_str

    Code

    from time_utils import TimeUtil
    
    # Convert a date in milliseconds to a date string
    date_str = TimeUtil.date_ms_to_date_str(1617223200000)
    
    print(date_str)
    

    Output

    2021-03-31 00:00:00.000
    
  • TimeUtil.date_ms_to_date_time

    Code

    from time_utils import TimeUtil
    
    # Convert a date in milliseconds to a date time object
    dt = TimeUtil.date_ms_to_date_time(1617223200000)
    
    print(dt)
    

    Output

    2021-03-31 00:00:00
    
  • TimeUtil.date_str_to_date_time

    Code

    from time_utils import TimeUtil
    
    # Convert a date string to a date time object
    dt = TimeUtil.date_str_to_date_time('2021-03-31 00:00:00.000')
    
    print(dt)
    

    Output

    2021-03-31 00:00:00
    
  • TimeUtil.date_time_to_date_ms

    Code

    from time_utils import TimeUtil
    from datetime import datetime
    
    # Convert a date time object to a date in milliseconds
    date_ms = TimeUtil.date_time_to_date_ms(datetime(2021, 3, 31, 0, 0, 0))
    
    print(date_ms)
    

    Output

    1617223200000
    
  • TimeUtil.get_current_date_ms

    Code

    from time_utils import TimeUtil
    
    # Get the current date in milliseconds
    current_date_ms = TimeUtil.get_current_date_ms()
    
    print(current_date_ms)
    

    Output

    1617223200000
    
  • TimeUtil.get_timezone_offset_hours

    Code

    from time_utils import TimeUtil
    
    # Get the timezone offset in hours
    timezone_offset = TimeUtil.get_timezone_offset_hours('PDT')
    
    print(timezone_offset)
    

    Output

    -7
    
  • TimeUtil.is_leap_year

    Code

    from time_utils import TimeUtil
    
    # Check if a year is a leap year
    is_leap_year = TimeUtil.is_leap_year(2020)
    
    print(is_leap_year)
    

    Output

    True
    
  • TimeUtil.is_timeout_ms

    Code

    from time_utils import TimeUtil
    from time import sleep
    
    current_date_ms = TimeUtil.get_current_date_ms()
    is_timeout = TimeUtil.is_timeout_ms(current_date_ms, 1000)
    print(is_timeout)
    sleep(2)
    is_timeout = TimeUtil.is_timeout_ms(current_date_ms, 1000)
    print(is_timeout)
    

    Output

    False
    True
    
  • TimeUtil.is_date_in_format

    Code

    from time_utils import TimeUtil
    from time_utils import YMD_HMSF_DATE_FORMAT
    
    # Check if a date string is in a specific format
    is_date_in_format = \
        TimeUtil.is_date_in_format('2021-03-31 00:00:00.000', YMD_HMSF_DATE_FORMAT)
    
    print(is_date_in_format)
    

    Output

    True
    

Timer methods

Record the time it takes to execute a method or a block of code.

Methods

Method Description Parameters Returns
method_timer Measure method execution time. function The method to measure it's time.
*args The method's arguments.
**kwargs The method's keyword arguments.
Timer Object that contains method execution time and results.
timer decorator Timer decorator that measure the method execution time, and add the results to parameter, that can be accessed by the method get_timer_results() is_enabled (bool, Default: True) If True, the timer is enabled, otherwise it is disabled. any Method result.
get_timer_results Returns the timer results. dict[list[Timer]] The timer results.
{'FILE_PATH:Class.Method: [Timer]}'.
reset_timer_results Resets the timer results.
get_max_keys Returns the maximum amount of allowed keys in the timer results. int The maximum amount of allowed keys in the timer results.
set_max_keys Sets the maximum amount of allowed keys in the timer results. max_keys (int) The maximum amount of allowed keys in the timer results.
get_max_results_per_key Returns the maximum amount of allowed results per key in the timer results. int The maximum amount of allowed results per key in the timer results.
set_max_results_per_key Sets the maximum amount of allowed results per key in the timer results. max_results_per_key (int) The maximum amount of allowed results per key in the timer results.
with Timer() as t: Context manager that times a block of code. Timer Object that contains block execution time and results.

Timer class

Parameters Description Type Default
start_date_ms The start date in milliseconds. int
end_date_ms The end date in milliseconds. int None
execution_time_ms The execution time in milliseconds. int None
result The result of the method. any None
exception The exception that occurred during the method execution. Exception None
stack_trace The stack trace of the exception that occurred during the method execution. str None
__enter__ and __exit__ Context manager methods (with Timer() as t:).

Examples:

  • method_timer

    Code

    from from nrt_time_utils.timer import method_timer
    
    def my_method(a, b):
        return a + b
    
    timer = method_timer(my_method, 1, 2)
    
    print(timer.execution_time_ms)
    

    Output

    1
    
  • timer decorator

    Code

    from time import sleep  
    from from nrt_time_utils.timer import timer, get_timer_results
    
    @timer()
    def my_method(a, b):
        sleep(1)
        return a + b
    
    my_method(1, 2)
    
    timer_results = get_timer_results()
    
    for timer_result_list in timer_results.values():
        print(timer_result_list[0].execution_time_ms)
    

    Output

    1001
    
  • with Timer() as t:

    Code

    from time import sleep
    from from nrt_time_utils.timer import Timer
    
    with Timer() as t:
        sleep(1)
    
    print(t.execution_time_ms)
    

    Output

    1000
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nrt_time_utils-1.0.2.tar.gz (10.2 kB view hashes)

Uploaded Source

Built Distribution

nrt_time_utils-1.0.2-py3-none-any.whl (7.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page