zoukankan      html  css  js  c++  java
  • Java 中时间处理SimpleDateFormat 中HH和hh的区别

    之前发现自己开发的测试平台中,总是在乱发邮件。明明不应该发的邮件,怎么又在发。
    后来才发现,我自己记录时间类型的时候,记录错了
    24小时制要用大写的HH 比如
    SimpleDateFormat dtf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss@SSS");
    而我用了小写的hh的格式~~~

    还有时间存入DB中,是直接使用数据库中的函数,比如在SQl中锁定函数
    mysql中,insert tablename () values (now())
    sqlserver中, insert tablename () values (getdate())
    还是自己定义一个时间string类型的参数,比如creationdt,然后给它一个默认的格式,insert tablename() values (creationdt)

    如果只是一个数据库交互,后期不更改使用的数据库,用数据库中的函数也是可以的,还可以减少开发和测试的工作量
    如果一个产品,既要在mysql上可以运行,后期客户说想迁移到sqlserver数据库,也要可以执行,那就是要定义一下,不然换数据库中自然会报错

    import org.junit.Test;
    import java.text.SimpleDateFormat;
    import java.util.Date;

    public class EposReceiveApplicationTests {

    @Test
    public void TestDate() throws Exception {

    Date dt= new Date();
    long s=System.currentTimeMillis();
    System.out.println(s);
    long long1= 1559197504587L;
    SimpleDateFormat dtf = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat dtf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss@SSS");
    SimpleDateFormat dtf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss@SSS");
    String sdate =dtf1.format(long1);
    System.out.println(sdate);

    System.out.println(dtf.format(dt));
    System.out.println(dtf1.format(dt));
    System.out.println(dtf1.format(dt).toString());
    System.out.println(dtf2.format(dt));
    System.out.println(dtf2.format(dt).toString());


    // Date -> String
    Date date = new Date(System.currentTimeMillis());
    System.out.println(dtf.format(date));

    // String -> Date
    String timeString = "2019-05-30 14:25:15";
    Date newDate = dtf.parse(timeString);
    System.out.println(newDate);

    }

    }

    import org.junit.Test;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class EposReceiveApplicationTests {
    
        @Test
        public void TestDate() throws Exception {
    
            Date dt= new Date();
            long s=System.currentTimeMillis();
            System.out.println(s);
            long long1= 1559197504587L;
            SimpleDateFormat dtf = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat dtf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss@SSS");
            SimpleDateFormat dtf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss@SSS");
            String sdate =dtf1.format(long1);
            System.out.println(sdate);
    
            System.out.println(dtf.format(dt));
            System.out.println(dtf1.format(dt));
            System.out.println(dtf1.format(dt).toString());
            System.out.println(dtf2.format(dt));
            System.out.println(dtf2.format(dt).toString());
    
    
            // Date -> String
            Date date = new Date(System.currentTimeMillis());
            System.out.println(dtf.format(date));
    
            // String -> Date
            String timeString = "2019-05-30 14:25:15";
            Date newDate = dtf.parse(timeString);
            System.out.println(newDate);
    
        }
    
    }
    

      

  • 相关阅读:
    RxJava使用场景小结
    Android 6.0 Changes
    编写android的widget
    Volley的简单二次封装
    可能是史上最全的权限系统设计
    Android--GSYVideoPlayer框架实现播放视频
    Invoke-customs are only supported starting with Android O (--min-api 26) Message{kind=ERROR,……
    【Win10 应用开发】自适应Toast通知的XML文档结构
    【Win10 应用开发】从前台应用触发后台任务
    【Win10 应用开发】语音命令与App Service集成
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/9459198.html
Copyright © 2011-2022 走看看