zoukankan      html  css  js  c++  java
  • 将日期时间六个独立数据转换为QDatetime类型函数

    今天在写QT程序的时候需要从文件中把日期时间读取成int和double类型的数据,想要把这读进来的日期时间设置到QDatetimeEdit组件上,查了半天也没有找到直接设置的方法,后来经过查找资料发现可以先把上述的时间日期转换为规定类型(比如:“yy-MM-dd hh:mm:ss”)的QString之后,就可以转换为QDatetime类型,进而设置组件了,该函数记录如下:

      1 /*********************************************************************************************
      2 * sun 20200525
      3 * By sunguiyu96@gmail.com
      4 * 把int型的年月日转换为QDatetime
      5 * 输入:年月日时分秒
      6 * 输出:QDatetime
      7 * 进程:
      8 * 2020/05/26 sun 16:14:开始;
      9 * 2020/05/26 sun 16:44:无误;
     10 **********************************************************************************************/
     11 QDateTime Widget::intToQDatetime(int year,int month,int day,int hour,int minute,double second_d)
     12 {
     13     QDateTime DT;
     14     QString DT_s,year_s,month_s,day_s,hour_s,minute_s,second_s;      //为转换为时间格式做准备
     15     //
     16     if(year >= 1000 && year <= 9999)
     17     {
     18         year_s = QString::number(year);        //考虑年一定为4位
     19     }
     20     else
     21     {
     22         ui ->textEdit_2 ->setText("Year Error");  //报错
     23     }
     24     //
     25     if(month < 10 && month > 0)
     26     {
     27         month_s = QString::number(month);
     28         month_s = "0" + month_s;//补0
     29     }
     30     else if(month < 13 && month > 9)
     31     {
     32         month_s = QString::number(month);
     33     }
     34     else
     35     {
     36         ui ->textEdit_2 ->setText("Month Error");  //报错
     37     }
     38     //
     39     if(day < 10 && day > 0)
     40     {
     41         day_s = QString::number(day);
     42         day_s = "0" + day_s;//补0
     43     }
     44     else if(day < 32 && day > 9)
     45     {
     46         day_s = QString::number(day);
     47     }
     48     else
     49     {
     50         ui ->textEdit_2 ->setText("Day Error");  //报错
     51     }
     52     //
     53     if(hour < 10 && hour > 0)
     54     {
     55         hour_s = QString::number(hour);
     56         hour_s = "0" + hour_s;//补0
     57     }
     58     else if(hour < 25 && hour > 9)
     59     {
     60         hour_s = QString::number(hour);
     61     }
     62     else
     63     {
     64         ui ->textEdit_2 ->setText("Hour Error");  //报错
     65     }
     66     //
     67     if(minute < 10 && minute > 0)
     68     {
     69         minute_s = QString::number(minute);
     70         minute_s = "0" + minute_s;//补0
     71     }
     72     else if(minute < 61 && minute > 9)
     73     {
     74         minute_s = QString::number(minute);
     75     }
     76     else
     77     {
     78         ui ->textEdit_2 ->setText("Minute Error");  //报错
     79     }
     80     //
     81     int second = (int)second_d;
     82     if(second < 10 && second > 0)
     83     {
     84         second_s = QString::number(second);
     85         second_s = "0" + second_s;//补0
     86     }
     87     else if(second <= 60 && second >= 10)
     88     {
     89         second_s = QString::number(second);
     90     }
     91     else
     92     {
     93         ui ->textEdit_2 ->setText("Second Error");  //报错
     94     }
     95     DT_s = year_s + "-" + month_s + "-" + day_s + " " + hour_s + ":" + minute_s + ":" + second_s;
     96 //    qDebug() << "Str:" << DT_s << endl;
     97     DT = QDateTime::fromString(DT_s,"yyyy-MM-dd hh:mm:ss");
     98 //    qDebug() << DT.toString("yyyy-MM-dd hh:mm:ss")  << endl;
     99 
    100     return DT;
    101 }
  • 相关阅读:
    vue2 作用域插槽slot-scope详解
    vue2 inheritAttrs、attrs和attrs和listeners使用
    vue 渲染后更新数据
    php 两次encodeURI,解决浏览器跳转请求页乱码报错找不到页面的bug
    nginx 和 tp兼容pathinfo和rewrite两种url访问方式
    TFTP
    FTP服务相关实现
    FTP相关内容
    Redis高级
    Redis的相关命令
  • 原文地址:https://www.cnblogs.com/SunGuiY/p/12966950.html
Copyright © 2011-2022 走看看