java - 如何强制将字符串(通过格式化某些日期生成)转换为日期?

标签 java

我有一个字符串 (Jan12)(通过对当前日期 {20-jan-2012} 应用一些操作生成)现在我想将此字符串转换回日期格式。该值也应该相同,即新的 Date 对象应该具有值 jan12 而不是 (20-jan-2012) 。请帮忙。我尝试过这样做

 java.sql.Date.valueOf("Jan12") [this throws IllegalArgumentException]

还有

new SimpleDateFormat("MMMyy").parse("Jan12") [By this Date gets converted to 20-jan-2012]

所需输出: 值为 Jan12 的日期对象(12 是年份) 我的代码: new java.text.SimpleDateFormat("MMMyy").format(new java.text.SimpleDateFormat("yyyy-MM-dd").parse(s))//这是一个给出 Jan12 的字符串

现在我真的想将 Mycode 转换为 Date 对象

    Date now = new Date();                       
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");  
    String s1 = df.format(now); 
    System.out.println(s1);    // 2012-01-20
    java.sql.Date d111=java.sql.Date.valueOf(s1);
    System.out.println(d111); // 2012-01-20
    DateFormat df1 = new SimpleDateFormat("MMMyy");
    String s2 = df1.format(d111);
    System.out.println(s2);  //Jan12
  Now i want s2 to be converted in Date object 

最佳答案

@Aditya,

如果您使用给出“Jan12”的 Str2,则该字符串中没有日期部分,因此如果您将其转换为日期对象,它将获得“Jan”作为月份,12 作为年份,但它找不到“该字符串中的“day”。

如果您使用下面的代码

 try
    {
            Date d2 = df1.parse(s2); //here s2 is your string which gives "JAN12"
            System.out.println(d2);
    }
    catch(ParseException pe)
    {
        System.out.println("parse exception..");
    }

上述代码的输出将是:

Sun Jan 01 00:00:00 IST 2012

请注意,日期部分已重置为该月的第一天

因此,不可能获得完整的日期对象,因为您的原始日期,月份和年份被保留,但日期部分丢失了。

关于java - 如何强制将字符串(通过格式化某些日期生成)转换为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8939435/

相关文章:

java - 使用 currentTimeMillis 并关闭 6 小时

JavaFX - setVisible 隐藏元素但不重新排列相邻节点

java - 将方法组合在一种方法中还是使用多种方法更好?

java - 具有上下文路径的 Spring Boot 静态内容

java - 获取一年中每一天的所有完整时间

java - 无法在 RecyclerView 中显示项目

java - 我应该使用哪种基于 JVM 的语言将一种类型映射到另一种类型?

java - Java中类名后的冒号是做什么用的

java - 如何比较字符以检查它是否为空?

java - JDBC 错误 : java. sql.SQLException: ORA-08002: 在此 session 中尚未定义序列