#local-time #date-time #time #utc #local #date #tz

wtime

WTIME provides a variety of functions for obtaining the current UTC and local times, as well as generating customizable timestamps to suit your needs

7 releases (breaking)

0.6.0 Nov 5, 2024
0.5.0 Nov 4, 2024
0.4.0 Nov 2, 2024
0.3.0 Oct 30, 2024
0.0.0 Oct 14, 2024

#75 in Date and time

Download history 164/week @ 2024-10-14 541/week @ 2024-10-28 313/week @ 2024-11-04

1,018 downloads per month
Used in gprs

MIT/Apache

46KB
220 lines

LOGO
github crates.io docs.rs license license

WTIME

WTIME provides a variety of functions for obtaining the current UTC and local times, as well as generating customizable timestamps to suit your needs.


Table of Contents

Installation

Run the following Cargo command in your project directory:

cargo add wtime

Or add wtime to your Cargo.toml file:

[dependencies]
wtime = "MAJOR.MINOR.PATCH" # Replace with the latest version

Changelog

github

Features

  1. Current Time Retrieval

    • UTC and Local Time: WTIME offers seamless access to both current UTC and local times, making it easy to work with time zones and coordinate time-related functionalities.
  2. Customizable Timestamps

    • Flexible Formatting: Generate timestamps in various formats to meet your specific requirements, whether for logging, database entries, or user interfaces.
    • Configuration Options: Tailor timestamp outputs to include or exclude specific components (e.g., date, time, time zone) based on your project needs.
  3. Time Zone Support

    • Multiple Time Zones: Easily convert between different time zones, allowing for applications that require global time management.
    • Daylight Saving Time Adjustments: Automatic adjustments for daylight saving time ensure that your applications reflect accurate local time.
  4. Easy Integration

    • User-Friendly API: The WTIME API is designed with simplicity in mind, allowing developers to implement time-related functions with minimal effort.
    • Comprehensive Documentation: Well-documented functions and examples help users quickly understand how to leverage the crate effectively.
  5. High Performance

    • Efficiency: WTIME is optimized for performance, ensuring that time retrieval and manipulation operations are fast and resource-friendly.
    • Lightweight: The crate is designed to be lightweight, minimizing overhead while providing extensive functionality.

Usage

1. CALC

use wtime::calc::{calc_date, calc_week, get_day_name};
use wtime::utc::get_day;

fn main() {
    let (year, month, day) = calc_date(1728933069);
    println!("Date: {}-{}-{}", year, month, day); // Date: 2024-10-14

    let week_number = calc_week((2024, 10, 14));
    println!("Week number: {}", week_number); // 42

    let day = get_day();
    let day_name = get_day_name(1_670_000_000);
    println!("Day name: {}", day_name); // Day name: Friday
    println!("Day name: {}", get_day_name(day));
}

2. LOCAL

use wtime::local::{format_local_ts, local_ts_nanos};
use wtime::utc::utc_ts_nanos;

fn main() {
    let local_timestamp_nanos = local_ts_nanos();
    println!("Current Local Timestamp in Nanoseconds: {}", local_timestamp_nanos);

    let utc_timestamp_nanos = utc_ts_nanos();
    println!("Current UTC Timestamp in Nanoseconds: {}", utc_timestamp_nanos);
    
    let timestamp = format_local_ts();
    println!("Formatted Local Timestamp: {}", timestamp);
}

3. TZ

use wtime::tz::{tz_number, tz_string};

fn main() {
    let offset_number = tz_number();
    println!("Current timezone offset in hours: {}", offset_number);

    let offset_string = tz_string();
    println!("Current timezone offset: {}", offset_string);
}

4. UTC

use wtime::utc::{format_utc_ts, get_day};

fn main() {
    let day = get_day();
    println!("Current day: {}", day);

    let timestamp = format_utc_ts();
    println!("Formatted UTC Timestamp: {}", timestamp);

    // Simulate generating a unique ID with a suffix
    let unique_id_with_suffix = format!("ID-{}-{}", format_utc_ts(), "random_suffix"); // Replace with actual random suffix function
    println!("Generated Unique ID with Suffix: {}", unique_id_with_suffix);

    // Simulate generating a unique ID without a suffix
    let unique_id_without_suffix = format!("ID-{}", format_utc_ts());
    println!("Generated Unique ID without Suffix: {}", unique_id_without_suffix);

    // Simulate generating a blog post UTC timestamp
    let blog_post_timestamp = format!("BlogPost Timestamp: {}", format_utc_ts());
    println!("Generated Blog Post UTC Timestamp: {}", blog_post_timestamp);
}

Documentation

CALC

Function Function Function
calc_date calc_week duration_since
get_day_name get_millis get_minute
get_month_name get_nanos get_second
- is_leap_year -

LOCAL

Function Function Function
format_local_ts get_local_day get_local_hour
get_local_month get_local_year local_now
local_ts_millis local_ts_nanos local_ts_sec

TZ

Function Function
tz_number tz_string

UTC

Function Function Function
format_utc_ts get_day get_hour
get_month get_year utc_now
utc_ts_millis utc_ts_nanos utc_ts_sec

License

This project is licensed under either of the following licenses:

  • MIT License
  • Apache License, Version 2.0

You may choose either license for your purposes.

Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue for any feature requests or bug reports.

Author

Dr. Montasir Mirghani

Dependencies

~1MB
~18K SLoC