C# 中的波斯日历 (PersianDateTime)






4.93/5 (33投票s)
一个 C# 库,可以像 DateTime 一样轻松使用 PersianCalendar。
引言
您可以使用此库创建 PersianDateTime
,就像使用 DateTime 一样简单。
实际上,此库是 DateTime
和 PersianCalendar
的包装器。
此库可以创建和解析大多数流行的波斯日期时间字符串。
最新版本位于 www.github.com/Mds92/MD.PersianDateTime
背景
我之前见过 ,PersianDateTime,它很棒,您也可以使用它。
使用代码
通过 NuGet 安装此库
Install-Package MD.PersianDateTime
您可以像以下这样使用它
static void Main(string[] args)
{
PersianDateTime persianDateTime = new PersianDateTime(DateTime.Now);
Console.WriteLine(persianDateTime);
Console.ReadKey();
}
此外,此库可以解析一些波斯日期时间,如下所示
13930914
"1393/09/14 12:20:30"
"93/1/1 3:15 ب.ظ"
"1393/02/01 02:03:10:30"
"1393/09/14 12:20:30:300"
"1393/09/14 12:20 ب.ظ"
"1393/09/14"
"د 24 آذر 1393 4:2:5:5 ب.ظ"
"24 آذر 1393"
"جمعه 93/2/1 ساعت 3:2 ب.ظ"
"جمعه 14 آذر 1393 ساعت 11:50:30 ب.ظ"
"جمعه 14 آذر 1393 ساعت 16:50:30"
您可以直接使用此类代替 DateTime
static void Main(string[] args)
{
PersianDateTime persianDateTime = PersianDateTime.Parse("1393/09/15 12:20:30");
PrintDateTime(persianDateTime);
Console.ReadKey();
}
static void PrintDateTime(DateTime dateTime)
{
Console.WriteLine(dateTime);
}
您可以将所有数字更改为 波斯数字,方法是将 EnglishNumber
属性设置为 false
(默认值为 false)
一些输出
/// <summary>
/// 1393/09/14 13:49:40
/// </summary>
public override string ToString()
/// <summary>
/// 1393/09/14
/// </summary>
public string ToShortDateString()
/// <summary>
/// 13930914
/// It's greate to save in sql if you want to save persian date in database
/// </summary>
public int ToShortDateInt()
/// <summary>
/// ج 14 آذر 93
/// </summary>
public string ToShortDate1String()
/// <summary>
/// جمعه، 14 آذر 1393
/// </summary>
public string ToLongDateString()
/// <summary>
/// جمعه، 14 آذر 1393 ساعت 13:50:27
/// </summary>
public string ToLongDateTimeString()
/// <summary>
/// جمعه، 14 آذر 1393 13:50
/// </summary>
public string ToShortDateTimeString()
/// <summary>
/// 01:50 ب.ظ
/// </summary>
public string ToShortTimeString()
/// <summary>
/// 01:50:20 ب.ظ
/// </summary>
public string ToLongTimeString()
/// <summary>
/// Supported format
/// yyyy: سال چهار رقمی
/// yy: سال دو رقمی
/// MMMM: نام فارسی ماه
/// MM: عدد دو رقمی ماه
/// M: عدد یک رقمی ماه
/// dddd: نام فارسی روز هفته
/// dd: عدد دو رقمی روز ماه
/// d: عدد یک رقمی روز ماه
/// HH: ساعت دو رقمی با فرمت 00 تا 24
/// H: ساعت یک رقمی با فرمت 0 تا 24
/// hh: ساعت دو رقمی با فرمت 00 تا 12
/// h: ساعت یک رقمی با فرمت 0 تا 12
/// mm: عدد دو رقمی دقیقه
/// m: عدد یک رقمی دقیقه
/// ss: ثانیه دو رقمی
/// s: ثانیه یک رقمی
/// fff: میلی ثانیه 3 رقمی
/// ff: میلی ثانیه 2 رقمی
/// f: میلی ثانیه یک رقمی
/// tt: ب.ظ یا ق.ظ
/// t: حرف اول از ب.ظ یا ق.ظ
/// </summary>
public string ToString(string format)
/// <summary>
/// نمایش زمان سپری شده از زمان حال
/// مثال: 2 دقیقه قبل
/// </summary>
public string ElapsedTime()
/// <summary>
/// نمایش فقط تاریخ
/// مثال: 2014/04/13
/// </summary>
public DateTime Date
历史
第一篇帖子:2014 年 12 月 6 日
2014 年 12 月 7 日:更新源代码
2014 年 12 月 8 日:更新源代码
2014 年 12 月 9 日:更新源代码(添加格式)
2014 年 12 月 17 日:改进了解析器
2014 年 12 月 19 日:修复了一些错误
2014 年 12 月 21 日:添加了一些方法
2014 年 12 月 22 日:更新源代码
2014 年 12 月 23 日:更新源代码
2014 年 12 月 27 日:更新源代码
2015 年 1 月 3 日:支持解析中的阿拉伯字符
2015 年 1 月 12 日:添加了一些有用的属性
2015 年 4 月 13 日:添加了 Date 属性
2015 年 5 月 17 日:转换为结构体并修复了一些错误
2015 年 7 月 11 日:添加了 GetStartDayOfRamadan 方法 并修复了一些错误
2015 年 7 月 27 日修复 `GetWeekOfMonth` 中的一个错误
2015 年 9 月 5 日:修复了一些错误