gpt4 book ai didi

java - 如何构建具有自定义一周第一天的区域设置?

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:12 24 4
gpt4 key购买 nike

我需要一个 Locale 对象,它与另一个对象完全相同,但一周的第一天不同(即:星期日而不是星期六)。

具体来说,我需要一个从星期日开始的阿拉伯-埃及语言环境。我使用的日历控件仅支持更改其语言环境,因此符合我的要求。

最佳答案

Locale对象不控制一周的第一天。这是由 Calendar 完成的按照以下方式上课:

Locale locale = Locale.forLanguageTag("ar-EG");
Calendar calendar = Calendar.getInstance(locale);
calendar.setFirstDayOfWeek(Calendar.SUNDAY);

根据 your comment关于 Gautam Jose 的回答:

Normally this would've been just fine. Thing is, the control I'm using keeps instantiating Calendar objects according to the default locale (application scope wise), so a custom locale. I actually tried reverse engineering the control and it does not provide leeway around the issue due to it using private members (i.e.: inheriting it can't help here)

如果您直接使用 Java 反射 API 更改这些 private 成员,则不需要继承。

首先,检查控件的类以找到 Calendar 字段:

public class CalendarControl {
private Calendar calendar;
}

现在使用:

CalendarControl control; // The instance to manipulate
try {
Field field = control.getClass().getDeclaredField("calendar");
field.setAccessible(true);
field.set(control, calendar); // Pass the new object we created at top of this answer
} catch (Exception ex) {
// You must catch NoSuchFieldException and IllegalAccessException here
}

关于java - 如何构建具有自定义一周第一天的区域设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31368254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com