Java写一个年月日的结构体,golang日期转字符串,仿照java中的日期格式结构体

1、日期格式集合、日期转字符串方法

package util

import (

"strings"

"time"

)

//日期格式:模仿java中的结构体

type DateStyle string

const (

MM_DD = "MM-dd"

YYYYMM = "yyyyMM"

YYYY_MM = "yyyy-MM"

YYYY_MM_DD = "yyyy-MM-dd"

YYYYMMDD = "yyyyMMdd"

YYYYMMDDHHMMSS = "yyyyMMddHHmmss"

YYYYMMDDHHMM = "yyyyMMddHHmm"

YYYYMMDDHH = "yyyyMMddHH"

YYMMDDHHMM = "yyMMddHHmm"

MM_DD_HH_MM = "MM-dd HH:mm"

MM_DD_HH_MM_SS = "MM-dd HH:mm:ss"

YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm"

YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"

YYYY_MM_DD_HH_MM_SS_SSS = "yyyy-MM-dd HH:mm:ss.SSS"

MM_DD_EN = "MM/dd"

YYYY_MM_EN = "yyyy/MM"

YYYY_MM_DD_EN = "yyyy/MM/dd"

MM_DD_HH_MM_EN = "MM/dd HH:mm"

MM_DD_HH_MM_SS_EN = "MM/dd HH:mm:ss"

YYYY_MM_DD_HH_MM_EN = "yyyy/MM/dd HH:mm"

YYYY_MM_DD_HH_MM_SS_EN = "yyyy/MM/dd HH:mm:ss"

YYYY_MM_DD_HH_MM_SS_SSS_EN = "yyyy/MM/dd HH:mm:ss.SSS"

MM_DD_CN = "MM月dd日"

YYYY_MM_CN = "yyyy年MM月"

YYYY_MM_DD_CN = "yyyy年MM月dd日"

MM_DD_HH_MM_CN = "MM月dd日 HH:mm"

MM_DD_HH_MM_SS_CN = "MM月dd日 HH:mm:ss"

YYYY_MM_DD_HH_MM_CN = "yyyy年MM月dd日 HH:mm"

YYYY_MM_DD_HH_MM_SS_CN = "yyyy年MM月dd日 HH:mm:ss"

HH_MM = "HH:mm"

HH_MM_SS = "HH:mm:ss"

HH_MM_SS_MS = "HH:mm:ss.SSS"

)

//日期转字符串

func FormatDate(date time.Time, dateStyle DateStyle) string {

layout := string(dateStyle)

layout = strings.Replace(layout, "yyyy", "2006", 1)

layout = strings.Replace(layout, "yy", "06", 1)

layout = strings.Replace(layout, "MM", "01", 1)

layout = strings.Replace(layout, "dd", "02", 1)

layout = strings.Replace(layout, "HH", "15", 1)

layout = strings.Replace(layout, "mm", "04", 1)

layout = strings.Replace(layout, "ss", "05", 1)

layout = strings.Replace(layout, "SSS", "000", -1)

return date.Format(layout)

}

2、测试代码

package main

import (

"fmt"

"time"

"util"

)

func main() {

fmt.Println(util.FormatDate(time.Now(), util.HH_MM))

fmt.Println(util.FormatDate(time.Now(), util.HH_MM_SS))

fmt.Println(util.FormatDate(time.Now(), util.HH_MM_SS_MS))

fmt.Println(util.FormatDate(time.Now(), util.MM_DD))

fmt.Println(util.FormatDate(time.Now(), util.MM_DD_CN))

fmt.Println(util.FormatDate(time.Now(), util.MM_DD_EN))

fmt.Println(util.FormatDate(time.Now(), util.MM_DD_HH_MM))

fmt.Println(util.FormatDate(time.Now(), util.MM_DD_HH_MM_CN))

fmt.Println(util.FormatDate(time.Now(), util.MM_DD_HH_MM_EN))

fmt.Println(util.FormatDate(time.Now(), util.MM_DD_HH_MM_SS))

fmt.Println(util.FormatDate(time.Now(), util.MM_DD_HH_MM_SS_CN))

fmt.Println(util.FormatDate(time.Now(), util.MM_DD_HH_MM_SS_EN))

fmt.Println(util.FormatDate(time.Now(), util.YYMMDDHHMM))

fmt.Println(util.FormatDate(time.Now(), util.YYYYMM))

fmt.Println(util.FormatDate(time.Now(), util.YYYYMMDD))

fmt.Println(util.FormatDate(time.Now(), util.YYYYMMDDHH))

fmt.Println(util.FormatDate(time.Now(), util.YYYYMMDDHHMM))

fmt.Println(util.FormatDate(time.Now(), util.YYYYMMDDHHMMSS))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_CN))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_DD))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_DD_CN))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_DD_EN))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_DD_HH_MM))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_DD_HH_MM_CN))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_DD_HH_MM_EN))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_DD_HH_MM_SS))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_DD_HH_MM_SS_CN))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_DD_HH_MM_SS_EN))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_DD_HH_MM_SS_SSS))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_DD_HH_MM_SS_SSS_EN))

fmt.Println(util.FormatDate(time.Now(), util.YYYY_MM_EN))

fmt.Println(util.FormatDate(time.Now(), "yyyy/MM/dd HH:mm:ss.SSSSSSSSS"))

fmt.Println(util.FormatDate(time.Now(), "2006 01 02 15:04:05.00000000"))

}

执行结果:

15:30

15:30:57

15:30:57.577

06-06

06月06日

06/06

06-06 15:30

06月06日 15:30

06/06 15:30

06-06 15:30:57

06月06日 15:30:57

06/06 15:30:57

1806061530

201806

20180606

2018060615

201806061530

20180606153057

2018-06

2018年06月

2018-06-06

2018年06月06日

2018/06/06

2018-06-06 15:30

2018年06月06日 15:30

2018/06/06 15:30

2018-06-06 15:30:57

2018年06月06日 15:30:57

2018/06/06 15:30:57

2018-06-06 15:30:57.577

2018/06/06 15:30:57.577

2018/06

2018/06/06 15:30:57.577065200

2018 06 06 15:30:57.57706520

有疑问加站长微信联系(非本文作者)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值