我需要使用日期模式“yyyy-MM-dd”从输入字符串中解析一个日期,如果日期将以任何其他格式出现,则抛出一个错误。
这是我解析日期的一段代码:
private void validateDate() throws MyException {
Date parsedDate;
String DATE_FORMAT = "yyyy-MM-dd";
try{
parsedDate = new SimpleDateFormat(DATE_FORMAT).parse(getMyDate());
System.out.println(parsedDate);
} catch (ParseException e) {
throw new MyException(“Error occurred while processing date:” + getMyDate());
}
}
当我在myDate中输入“2011-06-12”这样的字符串时,我将得到输出“2011年9月29日星期四00:00:00 EEST”,这很好。
当我发送了一个不正确的字符串,比如“2011-0612”,我得到了预期的错误。
当我试图传递一个仍然有两个“连字符”的字符串时,问题就开始了,但是位数是错误的。示例:
输入字符串“2011-06-1211”结果“2014年9月23日星期二00:00:00 EEST”。
输入字符串“2011-1106-12”结果“Mon Feb 12 00:00:00 EET 2103”。
我无法更改字符串日期的输入格式。
我怎样才能避免呢?
同样的问题,我注意到,当我在main方法中直接使用此代码时,它返回正确的日期,当我通过一个单独的方法使用相同的代码时,它返回错误的日期
String string = "03/01/2015";
DateFormat format = new SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH);
Date date1 = format.parse(string);
System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(date));
函数中返回错误日期的代码
public Date isValidDate(String dateToValidate, String dateFormat){
if(dateToValidate == null){
return null;
}
DateFormat format = new SimpleDateFormat(dateFormat,Locale.ENGLISH);
//format.setLenient(false);
Date date;
try {
date = format.parse(dateToValidate);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
return date;
}
您是否尝试过在SimpleDataFormat
上调用setLenient(false)
?
import java.util.*;
import java.text.*;
public class Test {
public static void main(String[] args) throws Exception {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
format.setLenient(false);
Date date = format.parse("2011-06-1211"); // Throws...
System.out.println(date);
}
}
请注意,我还建议您设置SimpleDateFormat的时区和区域设置。(或者,使用Joda Time代替...)
背景: 在我的数据库表中,我有两个时间戳 当我执行“按时间戳ASC排序”时,时间戳2被认为是更大的时间戳(这是正确的)。 要求:我需要得到这些时间戳的差异(timeStamp2-timeStamp1) 我的实施: 答案应该是238ms,但返回的值是-653ms。我不确定我做错了什么。有什么建议吗?
在我的android应用程序中,我正在努力获取提供日期的周数。但是它没有给我正确的周数,我正在使用下面的代码来获取周数。 从上述日历中可以看出,截至2016年1月,属于第1周的天数只有第1、第2和第3天。第二周的相关天数为第四、第五、第六、第七、第八、第九和第十天。第三周的相关天数为11、12、13、14、15、16和17日,依此类推。但对于2016年1月12日,上述代码给出了第2周,而不是第3周
这是我目前正在处理的问题。 因此,我需要帮助更正今天日期的月份,100天后的日期,我生日的日期,和我生日后的10,000天。任何帮助或洞察力都非常感谢。
可能很简单,但是我找不到正确的格式来解析数据帧中的日期。 解析日期:2021年4月1日Thu(df名称:df data,列名:Date) 我的尝试: “”date_p=pd.to_datetime(nba_data.date,format=“%a%b%-m%y”)“” 我知道“-”根据错误是格式中的一个错误指令。然而,据我所知,只有%m会指01而不是1。我的假设对吗。 会非常感谢任何帮助。
问题内容: 我正在学习Go,并且正在尝试对日期时间进行JSON解组。 我有一个用C语言编写的程序生成的JSON,我正在输出我认为有效的ISO8601 / RFC3339时区偏移量。我正在使用以下格式字符串: (请注意,本机不支持,我有一个包装器将其替换为纳秒级)。 然后,将产生以下结果: 但是在Go中取消编组此功能将无效:https : //play.golang.org/p/vzOXbzAwdW
我有一个Java,它被转换成,这样就可以用以下样式查看它: i、 e 现在的问题是,当我对日期列进行排序时,日期并没有按应有的顺序进行排序。 当前行为:预期行为: 我知道这是因为排序是基于字符串发生的。 我的问题是:有没有办法保留我想要显示日期的格式,并且仍然能够将它们作为日期排序?我可以把它们转换成字符串以外的任何形式吗? 请注意,我无法编辑排序机制。我唯一的选择是为专栏提供一个合适的日期格式。