zoukankan      html  css  js  c++  java
  • 把数值转化为“00:00:00”格式

    输入(是取的数据库表中的数据):234.23、245.00、23.8、0等等

    期望输出:“00:00:00”格式 

      例如:输入 234.23则先四舍五入为234,然后转化为“00:03:54”

    使用第一种方法在本机得出正确结果,在测试机得出“23:03:54”



    1.方法1:

    开始是根据时间来处理的:

    public String func1(Double date){
    
    String result= sdf.format(date*1000-8*3600*1000);
    
    return result;
    
    }

    结果在本机开发环境下(Windows、Eclipse)能得到正确的结果,但是到了测试机(Linux服务器)上面却不能得到正确的结果。应该是与时区有关!开始没发现,以为是传入的参数有问题,后来在本机测试是正确的,在测试机不正确才恍然大悟。取得时区把8替换,应该也能解决,但在网上找了找,没找到取得时区的方法,所以换成下面用字符串拼接的方法来处理。


    2.方法2:

        public String formatNumberToHourMinuteSecond(Double dateDou){
            String ft = "00:00:00";//没匹配上时:1.等于0时; 2.大于等于86400时.
            BigDecimal d = new BigDecimal(dateDou).setScale(0, BigDecimal.ROUND_HALF_UP);//四舍五入
            int date = Integer.valueOf(d.toString());
            if(date > 0 && date < 60){
                ft = "00:00:" + date;
            }else if(date >= 60 && date < 3600){
                ft = "00:" + (date/60>=10?date/60:"0"+date/60) + ":" + (date%60>=10?date%60:"0"+date%60);
            }else if(date >= 3600 && date < 86400 ){
                ft = (date/3600>=10?date/3600:"0"+date/3600) + ":" + (date%3600/60>=10?date%3600/60:"0"+date%3600/60) + ":" + (date%60>=10?date%60:"0"+date%60);
            }
            return ft;
        }


    PS:尽量别在程序中把条件写死。方法二还可以优化,比较懒...

  • 相关阅读:
    GJM :用JIRA管理你的项目(三)基于LDAP用户管理 [转载]
    GJM :用JIRA管理你的项目(二)JIRA语言包支持及插件支持 [转载]
    GJM : 用JIRA管理你的项目(一)JIRA环境搭建 [转载]
    javascripct导图
    Sublime Text 中使用Git插件连接GitHub
    使用webstorm上传代码到github
    jQuery.ajax()的一些例子
    jQuery.ajax()
    prefix和unprefix
    MVC , MVP , MVVM【转 阮一峰的网络日志】
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3043199.html
Copyright © 2011-2022 走看看