Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要设置给定字符串“的格式”;1992年5月18日“;使用stringTokenizer并获取月份的int值_Java_Date_Date Parsing - Fatal编程技术网

Java 需要设置给定字符串“的格式”;1992年5月18日“;使用stringTokenizer并获取月份的int值

Java 需要设置给定字符串“的格式”;1992年5月18日“;使用stringTokenizer并获取月份的int值,java,date,date-parsing,Java,Date,Date Parsing,我正在尝试使用字符串标记器格式化作为字符串输入的日期。日期格式将输入为 String str="18-AUG-92". 我要把它分成几个部分 int ndate = Integer.parseInt(str.nextToken()); int nmonth = Integer.parseInt(str.nextToken()); int nyear = Integer.parseInt(str.nextToken()); 但在nmonth期间,输入的值“AUG”在字符串中显示错误 我想把“八

我正在尝试使用字符串标记器格式化作为字符串输入的日期。日期格式将输入为

String str="18-AUG-92".
我要把它分成几个部分

int ndate = Integer.parseInt(str.nextToken());
int nmonth = Integer.parseInt(str.nextToken());
int nyear = Integer.parseInt(str.nextToken());
但在nmonth期间,输入的值“AUG”在字符串中显示错误

我想把“八月”改成08

有人知道吗?

给你

String datetime="18-Aug-92";
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("dd-MMM-yy");
LocalDate date = LocalDate.parse(datetime, dateFormat);
System.out.println(date.getMonth().getValue());

使用DateFormatter而不是StringTokenizer使用内置的日期解析工具。使用
DateTimeFormatterBuilder
及其
ParseCaseSensitive
方法来构建
DateTimeFormatter
。解析为
LocalDate
。它具有将年、月和月日作为整数获取的方法。细节在很多地方都有涉及。链接的问题可能还不够,剩下的就用你的搜索引擎吧。另外,
StringTokenizer
是旧代码,不推荐用于新代码。确定。已使用DateTimeFormatterThank修复了答案。有几个小问题:月份缩写取决于语言环境,询问者的
AUG
都是大写的(这不适用于您的代码)。但是您基本上显示了要使用的正确类,这总是很有帮助的。如果您愿意,您可以使用稍微简短的
date.getMonthValue()
获取8月份的8。