你知道不同的国家有不同的日期格式吗?当您制作多语言 告或针对他们说波斯语(波斯语)的国家/地区进行 告时,以正确的格式显示日期很重要。
Fastreport.NET在线购买价优惠,专享85折起!赶紧加入购物清单吧!
你知道不同的国家有不同的日期格式吗您制作多语言 告或针对他们说波斯语(波斯语)的国家/地区进行 告时,以正确的格式显示日期很重要。默认情况下,FastReport 使用欧洲日期格式,但 .NET 工具允许将其转换为不同的格式。
因此,我们的任务是将日期转换为波斯格式。例如,我们的 告有一个表达式 [Date],表示今天的日期:

表达式[Date]以DateTime格式获取当前系统日期,但所有处理后的文本 告的值是String。让我们在 告脚本中创建一个新函数:
private void ConvertToPersianDate(object sender, EventArgs e)
我们将从文本对象中唤起这个功能。我们创建一个临时变量,它将对象的文本转换为 DateTime:
DateTime d = DateTime.Parse((sender as TextObject).Text);
“sender as TextObject”是调用函数的对象的地址。如果我们以这种方式处理它,我们就可以使用它的功能和属性。
之后,我们将需要 PersianCalendar 对象,它将日期转换为波斯语格式:
PersianCalendar pc = new PersianCalendar ( ) ;
请注意,此对象存储在 System.Globalization 库中,并且必须在“使用”部分中指明。
然后我们必须更改对象的文本。更详细地考虑这一行:
(sender as TextObject).Text = string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d));
"{0}.{1}.{2}", pc.GetDayOfMonth(d), pc.GetMonth(d), pc.GetYear(d)
结果,我们得到以下函数:
using System.Globalization;namespace FastReport{ public class ReportScript { private void ConvertToPersianDate(object sender, EventArgs e) { // Converting to DateTime format DateTime d = DateTime.Parse((sender as TextObject).Text); // Creating an object for conversion PersianCalendar pc = new PersianCalendar(); // Creating a string using PersianCalendar // It is possible to change the string template (sender as TextObject).Text = string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d)); } }}
将该函数添加到相关对象的 AfterData 事件中。