Rust Persian Calendar v0.1.1 provides functionality for conversion among Persian (Solar Hijri) and Gregorian calendars. A Julian calendar is used as an interface for all conversions. The crate name is ptime
and it is compatible with the crate time. This source code is licensed under MIT license that can be found in the LICENSE file.
Add ptime = "0.1"
to dependencies
section of Cargo.toml
:
[dependencies]
time = "0.1"
ptime = "0.1"
1- Import the crate ptime
. Most of the time you need to import time
crate, too.
extern crate ptime;
extern crate time;
2- Convert Gregorian calendar to Persian calendar.
let p_tm = ptime::from_gregorian_date(2016, 2, 21).unwrap();
assert_eq!(p_tm.tm_year, 1395);
assert_eq!(p_tm.tm_mon, 0);
assert_eq!(p_tm.tm_mday, 2);
3- Convert Persian calendar to Gregorian calendar.
let g_tm = ptime::from_persian_date(1395, 0, 2).unwrap().to_gregorian();
assert_eq!(g_tm.tm_year, 2016);
assert_eq!(g_tm.tm_mon, 2);
assert_eq!(g_tm.tm_mday, 21);
4- Get the current time.
let p_tm = ptime::now();
println!("Current time: {}", p_tm);
let p_tm_utc = ptime::now_utc();
println!("Current time at UTC: {}", p_tm_utc);
5- Format the time.
let p_tm = ptime::from_gregorian(time::now());
println!("{}", p_tm.to_string("yyyy-MM-dd HH:mm:ss.ns"));
/// yyyy, yyy, y year (e.g. 1394)
/// yy 2-digits representation of year (e.g. 94)
/// MMM the Persian name of month (e.g. فروردین)
/// MM 2-digits representation of month (e.g. 01)
/// M month (e.g. 1)
/// DD day of year (starting from 1)
/// D day of year (starting from 0)
/// dd 2-digits representation of day (e.g. 01)
/// d day (e.g. 1)
/// E the Persian name of weekday (e.g. شنبه)
/// e the Persian short name of weekday (e.g. ش)
/// A the Persian name of 12-Hour marker (e.g. قبل از ظهر)
/// a the Persian short name of 12-Hour marker (e.g. ق.ظ)
/// HH 2-digits representation of hour [00-23]
/// H hour [0-23]
/// kk 2-digits representation of hour [01-24]
/// k hour [1-24]
/// hh 2-digits representation of hour [01-12]
/// h hour [1-12]
/// KK 2-digits representation of hour [00-11]
/// K hour [0-11]
/// mm 2-digits representation of minute [00-59]
/// m minute [0-59]
/// ss 2-digits representation of seconds [00-59]
/// s seconds [0-59]
/// ns nanoseconds
For more information, please check the test files in tests
folder.
Android Persian Calendar / تقویم فارسی اندروید
A package that extracts Persian time and date markers by applying regexes.
An extension for Gnome-Shell to show Persian date/calendar
A modern, beautiful, customizable date picker for React
A shop website written in Rust.
The Rust Programming Language Book (Persian Translation)
A free JavaScript Jalali (Persian) and Gregorian (Miladi) dual datepicker library for Blazor applications
A collection of Persian components for Blazor