有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java SimpleDataFormat转换

SimpleDateFormat format = new SimpleDateFormat("GD_yyyyMMdd_HHmmss");
    System.out.println(format.format(new Date()));

我想要一个类似'GD_20120604_164534'的结果,但结果是AD156_20120604_165315

如何设置参数可以返回我想要的结果。提前谢谢


共 (5) 个答案

  1. # 1 楼答案

    SimpleDateFormat format = new SimpleDateFormat("'GD'_yyyyMMdd_HHmmss");
    System.out.println(format.format(new Date()));
    

    使用“转义”来转义字符

  2. # 2 楼答案

    G是一个era指示符,D表示日期,如SimpleDateFormat引用中所指定,并且:

    Text can be quoted using single quotes (') to avoid interpretation. "''" represents a single quote.

    改为:

    SimpleDateFormat format = new SimpleDateFormat("'GD_'yyyyMMdd_HHmmss");
    
  3. # 3 楼答案

    SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd_HHmmss");
    System.out.println("GD_" + format.format(new Date()));
    
  4. # 4 楼答案

    这是因为GD是类似于yyyy的变量:

    G   Era designator  Text    AD
    D   Day in year     Number  189
    

    你应该避开这两封信(我认为只有一句话)

  5. # 5 楼答案

    根据JavaDocsG表示年代D表示一年中的某一天

    解决这个问题并做你想做的事情的一种方法是这样做:

    String newDate = "GD_" + format.format(new Date());