1 Star 0 Fork 0

蔡风华 / baseutils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
timeutil.go 3.44 KB
一键复制 编辑 原始数据 按行查看 历史
package timeutil
import (
"errors"
"fmt"
"strconv"
"strings"
"time"
"gitee.com/cfh008/runutils"
)
func ParseYear(yearStr string) (year time.Time, err error) {
// 参照time.RFC3339格式自定义数据格式
const Layout = "2006-01-02" //时间常量
const firstMonthStr = "-01"
const firstDayStr = "-01"
wholeDateLen := len(Layout)
yearLen := wholeDateLen - len(firstMonthStr) - len(firstDayStr)
yearMonthLen := wholeDateLen - len(firstDayStr)
srcLen := len(yearStr)
if srcLen != wholeDateLen && srcLen != yearMonthLen && srcLen != yearLen {
err = fmt.Errorf("%v param length(%v) is invalid", runutils.RunFuncName(), srcLen)
return
}
targetStr := yearStr
if srcLen == wholeDateLen || srcLen == yearMonthLen {
targetStr = targetStr[0:yearLen] + firstMonthStr + firstDayStr
} else {
targetStr = targetStr + firstMonthStr + firstDayStr
}
return time.ParseInLocation(Layout, targetStr, time.Local)
}
func ParseMonth(monthStr string) (month time.Time, err error) {
// 参照time.RFC3339格式自定义数据格式
const Layout = "2006-01-02" //时间常量
const firstDayStr = "-01"
wholeDateLen := len(Layout)
yearMonthLen := wholeDateLen - len(firstDayStr)
srcLen := len(monthStr)
if srcLen != wholeDateLen && srcLen != yearMonthLen {
errorInfo := fmt.Sprintf("%v param length(%v) is invalid", runutils.RunFuncName(), srcLen)
err = errors.New(errorInfo)
return
}
targetStr := monthStr
if srcLen == wholeDateLen {
targetStr = targetStr[0:yearMonthLen] + firstDayStr
} else {
targetStr = targetStr + firstDayStr
}
return time.ParseInLocation(Layout, targetStr, time.Local)
}
func ParseDate(dateStr string) (date time.Time, err error) {
// loc, _ := time.LoadLocation("Local")
// 参照time.RFC3339格式自定义数据格式
const Layout = "2006-01-02" //时间常量
return time.ParseInLocation(Layout, dateStr, time.Local)
}
func ParseDotDate(dateStr string) (date time.Time, err error) {
targetDateStr := strings.Replace(dateStr, ".", "-", -1)
return ParseDate(targetDateStr)
}
func ParseDateTime(dateStr string) (date time.Time, err error) {
// 参照time.RFC3339格式自定义数据格式
const Layout = "2006-01-02 15:04:05" //时间常量
return time.ParseInLocation(Layout, dateStr, time.Local)
}
func GetDateTime(t time.Time) string {
return fmt.Sprintf("%04d-%02d-%02d %02d:%02d:%02d", t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second())
}
func GetDateStr(t time.Time) string {
return fmt.Sprintf("%04d-%02d-%02d", t.Year(), t.Month(), t.Day())
}
func GetDateChrStr(t time.Time) string {
return fmt.Sprintf("%04d年%02d月%02d日", t.Year(), t.Month(), t.Day())
}
func GetPureDateStr(t time.Time) string {
return fmt.Sprintf("%04d%02d%02d", t.Year(), t.Month(), t.Day())
}
func GetSlashDateStr(t time.Time) string {
return fmt.Sprintf("%04d/%02d/%02d", t.Year(), t.Month(), t.Day())
}
func GetDotDateStr(t time.Time) string {
return fmt.Sprintf("%04d.%02d.%02d", t.Year(), t.Month(), t.Day())
}
func GetMonthStr(t time.Time) string {
return fmt.Sprintf("%04d-%02d", t.Year(), t.Month())
}
func GetMonthChrStr(t time.Time) string {
return fmt.Sprintf("%04d年%02d月", t.Year(), t.Month())
}
func NowTimeInMs() int64 {
return time.Duration(time.Now().UnixNano()).Milliseconds()
}
func GetTimestampStrWithInput(t time.Time) string {
currentTime := time.Duration(t.UnixNano()).Milliseconds()
return strconv.FormatInt(currentTime, 10)
}
func GetTimestampStr() string {
return GetTimestampStrWithInput(time.Now())
}
Go
1
https://gitee.com/cfh008/baseutils.git
git@gitee.com:cfh008/baseutils.git
cfh008
baseutils
baseutils
v0.3.0

搜索帮助