gpt4 book ai didi

java - JodaTime DateTime 和使用 AM/PM 处理语言环境

转载 作者:行者123 更新时间:2023-11-29 03:54:35 25 4
gpt4 key购买 nike

有人可以向我解释一下 DateTime 在 AM/PM 方面的工作原理吗?

public DateTime(
int year,
int monthOfYear,
int dayOfMonth,
int hourOfDay,
int minuteOfHour,
int secondOfMinute,
int millisOfSecond,
DateTimeZone zone) {
super(year, monthOfYear, dayOfMonth,
hourOfDay, minuteOfHour, secondOfMinute, millisOfSecond, zone);
}

我知道我可以通过 DateFormat 和解析字符串来处理 AM/PM,但我对这种方法很感兴趣。我想不通。因为 DateTimeZone 不直接与 Locale 相关,所以 Chronology 也不直接相关。

我是否必须根据 AM/PM 信息手动将 hourOfDay 更改为 24 小时类型?

我正在使用一个 UI html 表单小部件 >> http 请求 6 个参数,基于 Locale (y,m,d,h,m,AM/PM)/(y,m,d,h,m) >> 现在我想通过 JodaTime 的 DateTime 对象从这些 5/6 值创建 Date 对象。是否可以不用我手动将 (y,m,d,h,m,AM/PM) 转换为 (y,m,d,h,m)?

手动我会这样做

public static Date getDateSinceUTC2(Target orderBean, TimeZone tz) {

int ap = orderBean.getDeadLineAmPm();
int year = orderBean.getDeadLineYear();
int month = orderBean.getDeadLineMonth();
int day = orderBean.getDeadLineDay();
int hour = orderBean.getDeadLineHour();
int minute = orderBean.getDeadLineMinute();

if (ap == 1) {
hour += 12;
}

month++;

DateTime dt = new DateTime(year, month, day, hour, minute, 0, 0, DateTimeZone.forID(tz.getID()));

return new Date(dt.getMillis());
}

最佳答案

首先,我会开始使用 LocalDateTime,除非您实际上有一个时区。

但是您可以创建 DateTimeLocalDateTime,方法是给它 任何 小时,然后使用:

// I'm assuming amPm is 0 for am and 1 for pm
result = original.withField(DateTimeFieldType.hourOfHalfDay(), hour)
.withField(DateTimeFieldType.halfDayOfDay(), amPm);

不过,我想我个人可能会自己执行到“24 小时制中的小时”的转换。

关于java - JodaTime DateTime 和使用 AM/PM 处理语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7078205/

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