【发布时间】:2012-11-16 03:04:57
【问题描述】:
是否可以将 Joda 周的第一天改写为 星期日 ?因为 Joda 使用 Monday 作为一周的第一天。 如果有办法,任何人都可以解释一下。
我在 SOF 中提到了以下主题
谢谢
【问题讨论】:
标签: java android date datetime jodatime
是否可以将 Joda 周的第一天改写为 星期日 ?因为 Joda 使用 Monday 作为一周的第一天。 如果有办法,任何人都可以解释一下。
我在 SOF 中提到了以下主题
谢谢
【问题讨论】:
标签: java android date datetime jodatime
没有。
首先,将一周的第一天覆盖到星期日将需要覆盖所有其他工作日。但是这些最终常量是在DateTimeConstants 类中定义的,无法覆盖。但是您无论如何都不想覆盖这些值,因为它会破坏 joda-time 的 ISO 合规性。
同时我想知道你为什么要首先覆盖它?你能提供一个用例吗?
public static DateTime getUSFirstDayOfWeek(DateTime dateTime) {
return dateTime.withDayOfWeek(DateTimeConstants.MONDAY).minusDays(1);
}
这个简单的辅助方法可能会完成这项工作。请注意,我没有使用SUNDAY,因为它会在未来,即——按照美国的概念——已经是下周了。
【讨论】:
ReadableDateTime#getWeekOfWeekyear(),但这对你来说可能是错误的,因为它使用星期一作为第一天。我认为您不会为您的应用程序实施一个“正确”的替代方法来替代该方法。关于 ISO 合规性混乱:shure,JodaTime 支持大量自定义内容以将其全部搞砸——例如完成不同的年表——但我会尽量避免这种情况,因为它可能会在结合使用时产生损坏的结果您使用 joda 时间的其他要点。