Java 特定格式的日期转换

Java 特定格式的日期转换,java,Java,我想将日期转换为此格式 我使用dated=newdate()获取系统日期 我正在努力 SimpleDateFormat formatter2 = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss.s"); Date d = new Date(); String CALL_DATE = formatter2.format(d); tats给我的输出是正确的,但当我尝试保存时,它会给出错误: ORA-01830: date format picture ends

我想将日期转换为此格式

我使用
dated=newdate()获取系统日期

我正在努力

SimpleDateFormat formatter2 = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss.s");
Date d = new Date();
String CALL_DATE = formatter2.format(d);

tats给我的输出是正确的,但当我尝试保存时,它会给出错误:

ORA-01830: date format picture ends before converting entire input string

所以请向我推荐这个解决方案。

Hm,你发布的代码对我来说很好:)我唯一要做的就是添加一些导入。看:

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

public class Test {
    public static void main(String args[]) {
        SimpleDateFormat formatter2 = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss.S");
        Date d = new Date();
        String CALL_DATE = formatter2.format(d);
        System.out.println(CALL_DATE);
    }
}
此外,正如@adarshr所说,您需要将
s
替换为
s
以打印毫秒

输出:

m4tx@m4tx-N56VZ:~/Desktop$ javac Test.java 
m4tx@m4tx-N56VZ:~/Desktop$ java Test
12-Jul-2013 08:30:41.935

通过根据您的需求进行一些修改,尝试使用这些功能中的任何一个获得帮助

public static Date getDatebyMilliSeconds(Long timeInMillis) {

        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(timeInMillis);
        Date date = cal.getTime();
        return date;
    }


    public static Date getDateByString(String str_date) {
        DateFormat formatter;
        Date date = new Date();
        try {
            formatter = new SimpleDateFormat("mm/dd/yyyy HH:mm:ss");
            date = (Date) formatter.parse(str_date);
        } catch (ParseException e) {
            logger.error("------- error in date conversion " + e.getMessage());
        }
        return date;
    }

您可以使用
date.getTime()
这将以毫秒为单位返回时间,然后您可以使用我提到的1个函数,同样,通过进行一些更改,您可以使用第2个函数。

试试这个。。。。。您的代码很好,但我认为您在代码的其他部分犯了错误,请使用下面的代码进行检查

    import java.util.*;
    import java.text.*;

    public class Datedemo {
    public static void main(String args[]) {

      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("dd-MMM-yyyy hh:mm:ss.S");

      System.out.println("Current Date: " + ft.format(dNow));
   }
}
输出

Current Date: 12-Jul-2013 11:56:44.44

奇怪的是,没有一个答案指出要打印毫秒,必须使用
dd-MMM-yyy-hh:mm:ss.S

注意大写的
S


我不知道你为什么把它作为一个问题发布

SimpleDateFormat formatter2 = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss.s");
Date d = new Date();
String CALL_DATE = formatter2.format(d);

这很好用。如果您想以其他格式记录日期,请参阅。

您的代码运行良好,并在此处打印
2013年7月12日11:56:06.6
相同。你遇到了什么错误?没有复制,也没有stacktrace:投票给closeOP的代码效果很好,并打印了12-Jul-2013 11:56:06.6它打印了06.6,因为你有
s.s
。这不可能是正确的输出!它只是将秒数复制成毫秒,但OP告诉他有一个错误+当我试图保存时,它给出错误:ORA-01830:日期格式图片在转换整个输入之前结束string@AloNE您确定在发布的代码中出现此错误吗?不,它不会给我正确的输出,但在“保存时间”时,它会给出一个错误。当您尝试提交时,这是一条Oracle数据库错误消息。这里没有问题。参考此,可能会帮助您解决oracle问题。您是否正在尝试将日期写入Oracle数据库?您应该使它更清晰,并适当地标记,并包括代码的这一部分。然后在你自己的帖子上发表评论,这样每个人都能看得更清楚。