gpt4 book ai didi

java - 从自定义日期方法获取空白日期作为字符串

转载 作者:行者123 更新时间:2023-12-02 11:38:29 26 4
gpt4 key购买 nike

我正在制作一个日期过滤器,为此我创建了一个自定义方法,以便以特定的日期格式解析日期。我有两种格式的日期 dd MMM yyyy 和 yyyy-mm-dd,它们在单个方法中传递以进行解析并以 yyyy-mm-dd 格式返回。 由于我最后有一个复杂的结构,两种类型的格式化字符串都将采用日期解析方法。

问题::当格式为 yyyy-mm-dd 时,我从该方法返回一个空白字符串。请提供我的错误信息。下面是代码

 //fetching date from methods
String current_date=CurrentFilterPeriod.dateParsing("2017-04-02");
String prev_date=CurrentFilterPeriod.dateParsing("01 Apr 2017");




//singleton file for date filter method
public class CurrentFilterPeriod {
private static Calendar cal = getInstance();
private static Date current_date = cal.getTime();

//defined formats for date
private static SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy");
private static SimpleDateFormat formatterString = new SimpleDateFormat("yyyy-MM-dd");



//method for parsing date
public static String dateParsing(String date){
Date newDate;
String returnDate = "";
if (date.equals(formatter.toPattern())){
returnDate=date;
}
Log.e("DB","date===>"+date);
try {
newDate = formatter.parse(date);
Log.e("DB","New Date===>"+newDate);
returnDate=formatterString.format(newDate);
Log.e("DB","returnDate===>"+returnDate);
} catch (ParseException e) {
e.printStackTrace();
}

return returnDate;
}

}

结果::current_date=""prev_date="2017-04-01"

我被困在这里,请帮助我或告诉我其他方法来获得所需的输出。想要 yyyy-mm-dd 格式的结果

最佳答案

如您想要的结果格式,例如:yyyy-mm-dd。您需要使用 formatterString 格式化程序检查您的日期字符串。

更改您的代码:

 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

boolean isValidDate(String input) {
try {
format.parse(input);
return true;
}
catch(ParseException e){
return false;
}
}

现在使用以下方法调用该方法:

//method for parsing date
public static String dateParsing(String date) {
Date newDate;
String returnDate = "";
if (isValidDate(date)) {
returnDate = date;
return returnDate;
} else {
Log.e("DB", "date===>" + date);
try {
newDate = formatter.parse(date);
Log.e("DB", "New Date===>" + newDate);
returnDate = formatterString.format(newDate);
Log.e("DB", "returnDate===>" + returnDate);
} catch (ParseException e) {
e.printStackTrace();
}
}

return returnDate;
}

关于java - 从自定义日期方法获取空白日期作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48744907/

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