zoukankan      html  css  js  c++  java
  • go 时间操作

    package common

    import (
    "fmt"
    "strings"
    "time"
    )

    const DATE_FORMAT = "2006-01-02 15:04:05"
    const DATE_FORMAT_YMD = "2006-01-02"
    //获取时间差, 返回天时分秒
    func GetTimeDiffer(start, end time.Time) (d, h, m, s int64) {
    var day, hour, minute, second int64
    if start.Before(end) {
    timeDiffer := end.Unix() - start.Unix()
    day := timeDiffer / (60 * 60 * 24)
    hour := (timeDiffer - (60 * 60 * 24 * day)) / 3600
    minute := (timeDiffer - 60*60*24*day - 3600*hour) / 60
    second := timeDiffer - 60*60*24*day - 3600*hour - 60*minute
    return day, hour, minute, second
    } else {
    return day, hour, minute, second
    }

    }


    //获取开始&结束时间 每天
    func GetStartAndEndTime(date time.Time) (startTime string, endTime string) {
    startDate := time.Date(date.Year(), date.Month(), date.Day(), 0, 0, 0, 0, time.Local)
    endDate := time.Date(date.Year(), date.Month(), date.Day(), 23, 59, 59, 0, time.Local)
    startTime = startDate.Format("2006-01-02 15:04:05")
    endTime = endDate.Format("2006-01-02 15:04:05")
    return
    }
    //获取开始&结束时间 每月
    func GetStartAndEndTimeMonthlyDay(date time.Time) (startTime string, endTime string) {
    startDate := time.Date(date.Year(), date.Month(), 1, 0, 0, 0, 0, time.Local)
    endDate := time.Date(date.Year(), date.Month(), MonthDayCount(date.Year(), date.Month()), 23, 59, 59, 0, time.Local)
    startTime = startDate.Format("2006-01-02")
    endTime = endDate.Format("2006-01-02")
    return
    }
    //每月天数
    func MonthDayCount(year int, month time.Month) (days int) {
    var m int
    m = int(month)
    if m != 2 {
    if m == 4 || m == 6 || m == 9 || m == 11 {
    days = 30

    } else {
    days = 31
    }
    } else {
    if ((year%4) == 0 && (year%100) != 0) || (year%400) == 0 {
    days = 29
    } else {
    days = 28
    }
    }
    return days
    }
    //格式化时间(字符串转time)  date 必须是 '2019-09-01 12:11:11' 格式
    func GetTimeTypeByString(date string) time.Time {
    applyTime, _ := time.ParseInLocation("2006-01-02 15:04:05", date, time.Local)
    return applyTime
    }

    //格式化时间(字符串转time) date 必须是 '2019-09-01' 格式
    func GetTimeDateTypeByString(date string) time.Time {
    applyTime, _ := time.ParseInLocation("2006-01-02", date, time.Local)
    return applyTime
    }
    func FormatTime(timestamp int64) string {
    if timestamp == 0 {
    timestamp = time.Now().Unix()
    }
    return time.Unix(timestamp, 0).Format("2006-01-02 15:04:05")
    }
    func GetDurationDays(startTime int64, endTime int64) []string {
    var result []string
    dayTime := int64(3600 * 24)
    nowTime := time.Now().Unix()
    if endTime == 0 || endTime > nowTime {
    endTime = nowTime
    }
    if startTime == 0 || startTime > nowTime {
    startTime = nowTime
    }
    for {
    if startTime > endTime {
    break
    }
    result = append(result, time.Unix(startTime, 0).Format("2006-01-02"))
    startTime += dayTime
    }
    return result
    }
     
     
  • 相关阅读:
    QTP模拟鼠标和键盘事件整理
    Linux 入门常用命令 — 改变文件或目录的访问权限
    做一个有品质的男人
    Linux下.tar .gz .tgz .bz2 .bz等解、压包命令详解
    全面整理CentOS系统使用中文
    MSDN宝藏库中,初学者应该看的东西【整理的很辛苦哦】
    IIS 7.5版本中一些诡异问题的解决方案
    老生常谈ASP.NET中的Cookies,罗列读写Cookies的方法
    分享3段平时很实用的微代码,高手莫喷
    SQL 2005中的临时表
  • 原文地址:https://www.cnblogs.com/ithubb/p/14129786.html
Copyright © 2011-2022 走看看