在java中以yyyyMMddHHmmss格式向时间添加30秒

在java中以yyyyMMddHHmmss格式向时间添加30秒,java,date,simpledateformat,Java,Date,Simpledateformat,如何在java中以yyyyMMddHHmmss格式向日期时间添加30秒 到目前为止,我已经做到了这一点 SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); Date d; d = df.parse(requestDate); System.out.println(" date d "+d); Long time = d.getTime();

如何在java中以
yyyyMMddHHmmss
格式向日期时间添加30秒

到目前为止,我已经做到了这一点

        SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
        Date d;
        d = df.parse(requestDate);
        System.out.println(" date d "+d);
        Long time = d.getTime();
        time +=30;
        Date d2 = new Date(time);
        System.out.println(" date d2 "+d2);
我得到的输出是不正确的,两者是同时的。我得到的结果是

 date d Wed Apr 30 19:32:47 IST 2014
 date d2 Wed Apr 30 19:32:47 IST 2014

你的想法是正确的,但犯了一个小错误
getTime
以毫秒为单位给出时间,而不是秒。因此,您需要添加30000。

您的想法是正确的,但犯了一个小错误
getTime
以毫秒为单位给出时间,而不是秒。因此,您需要添加30000。

您需要添加30000毫秒(30秒),其中1000毫秒表示1秒

 SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
    Date d;
    d = df.parse(requestDate);
    System.out.println(" date d "+d);
    Long time = d.getTime();
    time +=30000;//Here Change
    Date d2 = new Date(time);
    System.out.println(" date d2 "+d2);

您需要添加30000毫秒(30秒),其中1000毫秒表示1秒

 SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
    Date d;
    d = df.parse(requestDate);
    System.out.println(" date d "+d);
    Long time = d.getTime();
    time +=30000;//Here Change
    Date d2 = new Date(time);
    System.out.println(" date d2 "+d2);
tl;博士 java.time 使用现代java.time类,而不是可怕的旧遗留类

解析为
LocalDateTime
,因为您的输入显然缺少任何偏移量或时区指示符

DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuuMMddHHmmss” ) ;
LocalDateTime ldt = LocalDateTime.parse( “20180123123456” , f ) ;
Duration d = Duration.ofSeconds( 30 ) ;  // Represent a span of time unattached to the timeline. 
LocalDateTime later = ldt.plus( d ) ;
String output = later.format( f ) ;  // Generate a String representing the value of this object.
提示:改用ISO8601标准格式

有关详细信息,请搜索堆栈溢出。这已经被讨论过很多次了


关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

使用兼容的或更高版本,您可以直接与数据库交换java.time对象。不需要字符串,也不需要java.sql.*类

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 更高版本的Android捆绑包实现了java.time类
    • 对于早期的Android,该项目采用了ThreeTen Backport(如上所述)。看
该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,如、、和。

tl;博士 java.time 使用现代java.time类,而不是可怕的旧遗留类

解析为
LocalDateTime
,因为您的输入显然缺少任何偏移量或时区指示符

DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuuMMddHHmmss” ) ;
LocalDateTime ldt = LocalDateTime.parse( “20180123123456” , f ) ;
Duration d = Duration.ofSeconds( 30 ) ;  // Represent a span of time unattached to the timeline. 
LocalDateTime later = ldt.plus( d ) ;
String output = later.format( f ) ;  // Generate a String representing the value of this object.
提示:改用ISO8601标准格式

有关详细信息,请搜索堆栈溢出。这已经被讨论过很多次了


关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

使用兼容的或更高版本,您可以直接与数据库交换java.time对象。不需要字符串,也不需要java.sql.*类

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 更高版本的Android捆绑包实现了java.time类
    • 对于早期的Android,该项目采用了ThreeTen Backport(如上所述)。看

该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,如、、和。

请阅读日期。getTime()doc:返回毫秒数

    SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
    Date d;
    d = df.parse(requestDate);
    System.out.println(" date d "+d);
    Long time = d.getTime();
    time +=30000; //<---milliseconds
    Date d2 = new Date(time);
    System.out.println(" date d2 "+d2);
SimpleDateFormat df=新的SimpleDateFormat(“yyyyMMddHHmmss”);
日期d;
d=df.parse(requestDate);
系统输出打印项次(“日期d”+d);
长时间=d.getTime();

时间+=30000// 请阅读日期。getTime()文档:返回毫秒数

    SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
    Date d;
    d = df.parse(requestDate);
    System.out.println(" date d "+d);
    Long time = d.getTime();
    time +=30000; //<---milliseconds
    Date d2 = new Date(time);
    System.out.println(" date d2 "+d2);
SimpleDateFormat df=新的SimpleDateFormat(“yyyyMMddHHmmss”);
日期d;
d=df.parse(requestDate);
系统输出打印项次(“日期d”+d);
长时间=d.getTime();

时间+=30000//感谢您确认我的答案。感谢您确认我的答案。
Date
SimpleDateFormat
早已过时,后者尤其麻烦。我建议您不要使用它们,而是将它们用于您的任务。
Date
SimpleDateFormat
早已过时,后者尤其麻烦。我建议你不要使用它们,而是用于你的任务。你非常友好。使用早已过时的
日期
和臭名昭著的麻烦的
SimpleDateFormat
手工计算,而不是依赖标准的数学类-根据解释,这可能是一个正确的想法,当然不是唯一正确的想法。你非常友好。使用早已过时的
日期
和臭名昭著的麻烦
简化格式
手工计算,而不是依赖标准的数学类-根据解释,它可能是一个正确的想法,当然不是唯一正确想法中的正确想法。