力扣(LeetCode)题解:1507. 转变日期格式 golang实现

本文介绍了一种将特定格式的日期字符串(DayMonthYear)转换为YYYY-MM-DD格式的方法。通过使用Go语言实现,文章详细展示了如何从原始字符串中提取天、月、年,并按新的格式进行重新组合。

题目描述

给你一个字符串 date,它的格式为 Day Month Year ,其中:

Day 是集合 {"1st", "2nd", "3rd", "4th", ..., "30th", "31st"} 中的一个元素。
Month 是集合 {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"} 中的一个元素。
Year 的范围在 ​[1900, 2100]之间。
请你将字符串转变为 YYYY-MM-DD 的格式,其中:

YYYY 表示 4 位的年份。
MM 表示 2 位的月份。
DD 表示 2 位的天数。

解题思路

首先由字符串切割成年月日

  • DD 切割10-31的切割出来,1-9前面补0
  • MM 直接转换成对应的数字
  • YYYY 直接用

代码实现

func reformatDate(date string) string {
    words := strings.Fields(date) // 转换为数组
    var day string
    if len(words[0]) == 3 { // 获取天
        day = "0" + words[0][0:1] 
    } else {
        day = words[0][0:2]
    }
    monthmap := map[string] string { // 获取月
        "Jan" : "01", 
        "Feb" : "02", 
        "Mar" : "03", 
        "Apr" : "04", 
        "May" : "05", 
        "Jun" : "06", 
        "Jul" : "07", 
        "Aug" : "08", 
        "Sep" : "09", 
        "Oct" : "10", 
        "Nov" : "11", 
        "Dec" : "12",
    }
    sdate := words[2] + "-" + monthmap[words[1]] + "-" + day // 字符拼接
    return sdate
}

提交结果

执行用时: 0 ms
内存消耗: 2 MB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

之芫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值