Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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 将日期格式化为TXT文件中的yyyymmdd_Java - Fatal编程技术网

Java 将日期格式化为TXT文件中的yyyymmdd

Java 将日期格式化为TXT文件中的yyyymmdd,java,Java,将用户输入的日期格式从dd/mm/yyyy转换为yyyyymmdd,以方便日期检查。代码将日期写入.TXT文件,但当我希望使用yyyyymdd格式时,将其写入dd/mm/yyyyy格式。方法ValidDate是我迄今为止试图解决的问题,但仍然不起作用。谢谢你的帮助 tl;博士 看这个 20010123 提示:最好只使用标准格式以文本方式交换日期时间数据 java.time 您正在使用糟糕的日期时间类,这些类在几年前就被现代java.time类所取代,因为采用了 LocalDate 该类表示一个

将用户输入的日期格式从
dd/mm/yyyy
转换为
yyyyymmdd
,以方便日期检查。代码将日期写入.TXT文件,但当我希望使用
yyyyymdd
格式时,将其写入
dd/mm/yyyyy
格式。方法
ValidDate
是我迄今为止试图解决的问题,但仍然不起作用。谢谢你的帮助


tl;博士 看这个

20010123

提示:最好只使用标准格式以文本方式交换日期时间数据

java.time 您正在使用糟糕的日期时间类,这些类在几年前就被现代java.time类所取代,因为采用了

LocalDate
该类表示一个只包含日期的值,不包含一天中的时间,也不包含或

ISO 8601 所需的输出格式称为标准格式的“基本”变体。我建议考虑使用扩展变量YYYY-MM-DD,因为它更容易识别和阅读

此外,在解析/生成字符串时,java.time类默认使用扩展的变体。因此,无需指定格式化模式

LocalDate ld = LocalDate.parse( "2019-01-23" ) ;  // Parsed by default, no need to specify a formatting pattern. 

您需要执行解析以从字符串中获得新的日期。尝试更改validDate并执行解析,如下所示:

    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
    Date theDate = df.parse(date);
    SimpleDateFormat formater = new SimpleDateFormat ("yyyymmdd");
    String formatedDateAsString = formater.format(theDate);

可能重复的请尝试格式化代码以提高可读性,包括适当的缩进、删除多余的空行和删除不相关的注释。仅供参考,非常麻烦的日期时间类,例如,
java.text.simpleDataFormat
,现在被java 8和更高版本中内置的类所取代。谢谢你的回复。我应该把你给我的密码放在哪里?用这个替换ValidDate方法中的内容?抱歉,对java来说是个新手。再次感谢。@sr864感谢您的validateDate函数。您应该创建一个新方法,例如String dateConverter(String date)。然后使用您创建的dateConverter方法:SimpleDataFormat df=newSimpleDataFormat(“dd/MM/yyyy”);Date theDate=df.parse(日期);SimpleDataFormat formatdate=新的SimpleDataFormat(“yyyymmdd”);返回格式日期。格式(日期);之后,可以使用此方法在文件上写入:pw.println(日期转换器(formatdate)+“,“+L+”,“+cost);当我将pw.println修改为netbeans不允许时,所有这些都与最后一行不同,它说“这里不允许使用Void类型”,并给了我翻转操作数的选项。我做错什么了吗?感谢againdateConverter(..)应返回格式化字符串。
    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
    Date theDate = df.parse(date);
    SimpleDateFormat formater = new SimpleDateFormat ("yyyymmdd");
    String formatedDateAsString = formater.format(theDate);