为了账号安全,请及时绑定邮箱和手机立即绑定

带来一个共同的约会

带来一个共同的约会

Go
慕姐4208626 2022-08-24 18:46:41
我想合并两个字符串的日期:,当日期相同时返回true。我想忽略小时。"2021-05-30T15:00:00""2021-05-30""2021-05-30T15:00:00" => 2021-05-30  "2021-05-30" => 2021-05-30  2021-05-30 == 2021-05-30  // true为了实现这一点,我制作了两个格式化日期的函数。 表示带有小时的日期。 表示不带小时的字符串日期。timeParsersimplifyDateconst dateFormat = "2006-01-02T15:04:05"const simpleDateFormat = "2006-01-02"const departureTime = "2021-05-30T15:00:00"const startDate = "2021-05-30"func timeParser(format, value string) time.Time {    parsed, err := time.Parse(format, value)    if err != nil {        fmt.Println("timeParser Error: ", err)    }    return parsed}func simplifyDate(value string) time.Time {    parsed, err := time.Parse(dateFormat, value)    parsed.Format(simpleDateFormat)    if err != nil {        fmt.Println("timeParser Error: ", err)    }    return parsed}isStartDate := simplifyDate(departureTime) == timeParser(simpleDateFormat, startDate) // return false fmt.Println("simplifyDate(departureTime)", simplifyDate(departureTime)) //2021-05-30 15:00:00 +0000 UTCfmt.Println("timeParser(simpleDateFormat, startDate)", timeParser(simpleDateFormat, startDate)) // 2021-05-30 00:00:00 +0000 UTC在,我尝试按原样将日期格式化为DD-MM-YYYY。但是我得到的日期在末尾有小时和零,如, 。你能指出我做错了什么吗?timeParsersimplifyDatesimpleDateFormat = "2006-01-02"2021-05-30 00:00:00 +0000 UTC2021-05-30 15:00:00 +0000 UTC
查看完整描述

2 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

解析日期后,无需设置日期的格式即可进行比较。该类型有一些方法可以在这里为您提供帮助。time.Time

试试下面这样:

// time1 and time2 are your raw time.Time values
return (time1.Year() == time2.Year()) && (time1.YearDay() == time2.YearDay())

时间.年份

年份 返回 t 出现的年份。

时间.年日

YearDay 返回由 t 指定的年份中的某一天,对于非闰年,范围为 [1,365],在闰年中为 [1,366]。


查看完整回答
反对 回复 2022-08-24
?
largeQ

TA贡献2039条经验 获得超7个赞

鉴于这种情况,您似乎可以进行字符串比较:


package main


func compare(s, t string) bool {

   if len(s) > 10 {

      s = s[:10]

   }

   if len(t) > 10 {

      t = t[:10]

   }

   return s == t

}


func main() {

   for _, each := range []struct {

      s, t string

      res bool

   } {

      {"", "", true},

      {"", "2021-05-30T15:00:00", false},

      {"2021-05-30T15:00:00", "", false},

      {"2021-05-30T15:00:00", "2021-05-30", true},

   } {

      if compare(each.s, each.t) == each.res {

         println("pass")

      } else {

         println("fail")

      }

   }

}


查看完整回答
反对 回复 2022-08-24
  • 2 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信