You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Radzen Scheduler从公历转换为波斯历(Shamsi)?

如何将Radzen Scheduler切换为波斯历(Shamsi)

Radzen Scheduler本身未内置波斯历支持,但可以通过日期库结合自定义模板的方式实现切换,以下是具体步骤:

1. 引入波斯历日期处理库

如果是Blazor项目,推荐使用轻量的PersianDateTime库处理日期转换,通过NuGet安装:

Install-Package PersianDateTime

若是Angular版本,可使用moment-jalaali库完成同类操作。

2. 自定义Scheduler日期显示模板

Radzen Scheduler允许覆盖默认的日期渲染模板,将公历日期转换为波斯历后展示:

  • 月视图日期标题:通过MonthDayTemplate替换默认的公历日期显示
  • 日程时间:在AppointmentTemplate中转换日程的起止日期格式

Blazor项目示例代码

<RadzenScheduler Data="@appointments" StartProperty="Start" EndProperty="End" TextProperty="Text">
    <!-- 自定义月视图日期单元格 -->
    <MonthView MonthDayTemplate=@RenderPersianMonthDay />
    <!-- 自定义日程内容模板 -->
    <AppointmentTemplate Context="data">
        @{
            var appointment = (Appointment)data;
            var persianStart = new PersianDateTime(appointment.Start);
            var persianEnd = new PersianDateTime(appointment.End);
        }
        <div>@persianStart.ToString("yyyy/MM/dd HH:mm") - @persianEnd.ToString("yyyy/MM/dd HH:mm")</div>
        <div>@appointment.Text</div>
    </AppointmentTemplate>
</RadzenScheduler>

@code {
    IEnumerable<Appointment> appointments;

    protected override void OnInitialized()
    {
        appointments = new List<Appointment>
        {
            new Appointment { Start = DateTime.Now, End = DateTime.Now.AddHours(1), Text = "测试日程" }
        };
    }

    // 渲染波斯历日期的方法
    RenderFragment<DateTime> RenderPersianMonthDay = date => __builder =>
    {
        var persianDate = new PersianDateTime(date);
        <div>@persianDate.Day</div>
        <div>@persianDate.ToString("MMM")</div>
    };

    public class Appointment
    {
        public DateTime Start { get; set; }
        public DateTime End { get; set; }
        public string Text { get; set; }
    }
}

3. 配套日期选择器的适配

如果Scheduler关联的日期选择器也需要切换为波斯历,同样需要自定义其模板,将显示的公历日期转换为波斯历,同时处理用户输入的波斯历日期,转换回公历格式进行存储。

注意事项

  • 数据库层面建议仍使用公历存储日期,仅在前端展示时转换为波斯历,避免跨系统的日期兼容性问题
  • 若使用其他波斯历库,核心逻辑一致:通过模板拦截默认日期渲染,替换为转换后的波斯历格式

内容的提问来源于stack exchange,提问作者MHD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:45:41