gpt4 book ai didi

java - 带有 String 参数的方法仅接受手动设置的 String

转载 作者:行者123 更新时间:2023-12-02 09:41:35 24 4
gpt4 key购买 nike

我的代码有问题,其中我使用字符串(“2019/07/23”),并且我使用单独的函数添加天数,但是当我将这些新日期发送到另一个函数时(给我返回一个值),这个其他函数无法识别这些日期。但如果我手动发送这些日期(“2019/07/24”而不是变量 DATE),另一个函数现在会给我一个值。我不知道为什么,因为我将此变量与字符串(“2019/07/23”.equals(date))进行比较,并且它们相等......

String datex = "2019/07/23";
while(!datex.equals(dateUntil)){
turn = diary.turns(lawyer, datex);
while(turn != null){
sum++;
}
datex = addDay(datex, 1);
}

最佳答案

您没有提供足够的详细信息来诊断您的问题。但我可以为您提供正确方法的简单代码示例。

ISO 8601

首先,尽可能使用 ISO 8601将日期时间值序列化为人类可读文本的标准格式。日期为 YYYY-MM-DD。

本地日期

如果无法使用 ISO 8601 格式,请定义 DateTimeFormatter ,使其具有与您的输入相匹配的格式模式。然后解析为 LocalDateLocalDate类表示仅日期值,没有日期时间,也没有 time zoneoffset-from-UTC .

String input = "2019/07/23";
DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuu/MM/dd" ) ;
LocalDate ld = LocalDate.parse( input , f ) ;

或者使您的输入符合 ISO 8601。

String input = "2019/07/23".replace( "/" , "-" ) ;
LocalDate ld = LocalDate.parse( input ) ;

再约一次。

ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
LocalDate today = LocalDate.now( z ) ;

比较。调用 LocalDate::isBeforeisAfterisEqual

boolean overdue = ld.isBefore( today ) ;

智能对象,而不是哑字符串

不要再执着于字符串。您应该传递适当类型的对象,而不仅仅是字符串。这样做将使您的代码更加自记录,提供类型安全,确保有效值,并减少错误的可能性。

将参数类型从 String 更改为 LocalDate

关于java - 带有 String 参数的方法仅接受手动设置的 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57028796/

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