Java 如何解析字符串中的日期并将其设置为新格式

Java 如何解析字符串中的日期并将其设置为新格式,java,Java,我试图将261107解析为ddmmyy格式的日期 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class parse { public static void main(String[] args) throws ParseException { // TODO Auto-generated method stub Str

我试图将261107解析为ddmmyy格式的日期

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class parse {

  public static void main(String[] args) throws ParseException {
    // TODO Auto-generated method stub
    String strRawData =  "A2611070830151439.5935N 102057.0442E6.68152ID=AMY123";
    String strCode = strRawData.substring(0, 1);
    String datetemp = strRawData.substring(1, 7);
    SimpleDateFormat formatter = new SimpleDateFormat("ddmmyy");
    Date datelog = formatter.parse(datetemp);

    System.out.println(strCode);
    System.out.println(datetemp);
    System.out.println(datelog);

   }

 }
此代码返回:

A
261107
Fri Jan 26 00:11:00 SGT 2007

dd
表示月份中的日期

MM
表示月份(您使用的
MM
表示分钟)

yy
表示年份

对您的
SimpleDataFormatter
进行一个小小的修改,可以得到:

  SimpleDateFormat dt = new SimpleDateFormat("ddMMyy");
这是我的一张备忘单

如果要格式化日期输出,可以使用另一种
SimpleDateFormatter
.format(date)
方法

以下是如何做到这一点的示例:

public static void main(String[] args) throws ParseException {

    String strRawData =  "261107";
    SimpleDateFormat dateParser = new SimpleDateFormat("ddMMyy"); //formatter for parsing date
    SimpleDateFormat dateFormatter = new SimpleDateFormat("dd-MM-yyyy"); //formatter for formatting date output
    Date date = dateParser.parse(strRawData);

    System.out.println(dateFormatter.format(date));
}
26-11-2007


dd
表示月份中的日期

MM
表示月份(您使用的
MM
表示分钟)

yy
表示年份

对您的
SimpleDataFormatter
进行一个小小的修改,可以得到:

  SimpleDateFormat dt = new SimpleDateFormat("ddMMyy");
这是我的一张备忘单

如果要格式化日期输出,可以使用另一种
SimpleDateFormatter
.format(date)
方法

以下是如何做到这一点的示例:

public static void main(String[] args) throws ParseException {

    String strRawData =  "261107";
    SimpleDateFormat dateParser = new SimpleDateFormat("ddMMyy"); //formatter for parsing date
    SimpleDateFormat dateFormatter = new SimpleDateFormat("dd-MM-yyyy"); //formatter for formatting date output
    Date date = dateParser.parse(strRawData);

    System.out.println(dateFormatter.format(date));
}
26-11-2007


您的
SimpleDataFormat
中有问题

您必须将资本M使用数月:

SimpleDateFormat formatter = new SimpleDateFormat("ddMMyy");
请参阅Java提供的SimpleDataFormat表:


您的
SimpleDataFormat
中有问题

您必须将资本M使用数月:

SimpleDateFormat formatter = new SimpleDateFormat("ddMMyy");
请参阅Java提供的SimpleDataFormat表:

使用此简化格式:
SimpleDataFormat格式化程序=新的SimpleDataFormat(“ddMMyy”)

使用此简化格式:
SimpleDataFormat格式化程序=新的SimpleDataFormat(“ddMMyy”)

您需要使用
MM
而不是
MM
数月。大写为月;小写为分钟。

您需要在数月内使用
MM
而不是
MM
。大写为月;小写是分钟。

提示:
mm
是分钟,而不是月份。。。同时读取-解析LocalDate类中的单参数parse(CharSequence)方法使用ISO_LOCAL_日期格式化程序。要指定不同的格式化程序,可以使用双参数parse(CharSequence,DateTimeFormatter)方法。以下示例使用预定义的BASIC_ISO_日期格式化程序,该格式使用1959年7月9日的19590709格式。提示:
mm
是分钟,不是月。。。同时读取-解析LocalDate类中的单参数parse(CharSequence)方法使用ISO_LOCAL_日期格式化程序。要指定不同的格式化程序,可以使用双参数parse(CharSequence,DateTimeFormatter)方法。以下示例使用预定义的BASIC_ISO_日期格式化程序,该格式使用1959年7月9日的19590709格式。从谢谢你顺便问一下,我如何才能删除00:00:00中士或它不是removable@FatalError我已经编辑了答案,为你的评论添加了一个解决方案。谢谢你,顺便问一下,我怎样才能删除00:00:00 SGT呢removable@FatalError我对答案进行了编辑,为您的评论添加了解决方案