Go-carbon v1.3.3发布,新增星座相关操作方法
Go-carbon v1.3.3发布,新增星座相关操作方法 go-carbon 是一个简单、语义化且对开发者友好的 Golang 日期时间包。
GitHub: github.com/golang-module/carbon
carbon.Parse("2020-08-05").Constellation() // Leo
carbon.Parse("2020-08-05").SetLocale("zh-CN").Constellation() // 狮子座
carbon.Parse("2020-08-05").IsAries() // false
carbon.Parse("2020-08-05").IsTaurus() // false
carbon.Parse("2020-08-05").IsGemini() // false
carbon.Parse("2020-08-05").IsCancer() // false
carbon.Parse("2020-08-05").IsLeo() // true
carbon.Parse("2020-08-05").IsVirgo() // false
carbon.Parse("2020-08-05").IsLibra() // false
carbon.Parse("2020-08-05").IsScorpio() // false
carbon.Parse("2020-08-05").IsSagittarius() // false
carbon.Parse("2020-08-05").IsCapricorn() // false
carbon.Parse("2020-08-05").IsAquarius() // false
carbon.Parse("2020-08-05").IsPisces() // false
carbon.Parse("2020-08-05").ToMonthString() // August
carbon.Parse("2020-08-05").SetLocale("en").ToMonthString() // August
carbon.Parse("2020-08-05").SetLocale("zh-CN").ToMonthString() // 八月
carbon.Parse("2020-08-05").ToShortMonthString() // Aug
carbon.Parse("2020-08-05").SetLocale("en").ToShortMonthString() // Aug
carbon.Parse("2020-08-05").SetLocale("zh-CN").ToShortMonthString() // 8月
carbon.Parse("2020-08-05").ToWeekString() // Tuesday
carbon.Parse("2020-08-05").SetLocale("en").ToWeekString() // Tuesday
carbon.Parse("2020-08-05").SetLocale("zh-CN").ToWeekString() // 星期二
carbon.Parse("2020-08-05").ToShortWeekString() // Tue
carbon.Parse("2020-08-05").SetLocale("en").ToShortWeekString() // Tue
carbon.Parse("2020-08-05").SetLocale("zh-CN").ToShortWeekString() // 周二
1 回复
Go-carbon v1.3.3 新增的星座相关操作方法为日期时间处理提供了更多实用功能。以下是对这些方法的详细说明和示例:
星座获取方法:
// 获取星座(默认英文)
carbon.Parse("2020-08-05").Constellation() // 返回 "Leo"
// 获取本地化星座
carbon.Parse("2020-08-05").SetLocale("zh-CN").Constellation() // 返回 "狮子座"
carbon.Parse("2020-08-05").SetLocale("ja").Constellation() // 返回 "しし座"
星座判断方法:
// 判断具体星座
date := carbon.Parse("2020-08-05")
date.IsLeo() // 返回 true
date.IsAries() // 返回 false
// 批量判断示例
birthdays := []string{"1995-03-21", "1995-08-23", "1995-11-22"}
for _, bd := range birthdays {
c := carbon.Parse(bd)
if c.IsAries() {
fmt.Printf("%s 是白羊座\n", bd)
}
}
本地化字符串输出:
// 月份全称
carbon.Parse("2020-08-05").ToMonthString() // "August"
carbon.Parse("2020-08-05").SetLocale("zh-CN").ToMonthString() // "八月"
carbon.Parse("2020-08-05").SetLocale("de").ToMonthString() // "August"
// 月份简称
carbon.Parse("2020-08-05").ToShortMonthString() // "Aug"
carbon.Parse("2020-08-05").SetLocale("zh-CN").ToShortMonthString() // "8月"
// 星期全称
carbon.Parse("2020-08-05").ToWeekString() // "Tuesday"
carbon.Parse("2020-08-05").SetLocale("zh-CN").ToWeekString() // "星期二"
// 星期简称
carbon.Parse("2020-08-05").ToShortWeekString() // "Tue"
carbon.Parse("2020-08-05").SetLocale("zh-CN").ToShortWeekString() // "周二"
实际应用示例:
// 用户星座分析功能
func analyzeUserConstellation(birthday string) {
c := carbon.Parse(birthday).SetLocale("zh-CN")
fmt.Printf("生日: %s\n", c.ToDateString())
fmt.Printf("星座: %s\n", c.Constellation())
fmt.Printf("月份: %s\n", c.ToMonthString())
fmt.Printf("星期: %s\n", c.ToWeekString())
// 星座特征判断
switch {
case c.IsAries() || c.IsLeo() || c.IsSagittarius():
fmt.Println("火象星座")
case c.IsTaurus() || c.IsVirgo() || c.IsCapricorn():
fmt.Println("土象星座")
case c.IsGemini() || c.IsLibra() || c.IsAquarius():
fmt.Println("风象星座")
case c.IsCancer() || c.IsScorpio() || c.IsPisces():
fmt.Println("水象星座")
}
}
// 调用示例
analyzeUserConstellation("2020-08-05")
多语言支持示例:
// 支持多种语言的星座显示
func getConstellationInLocale(birthday string, locale string) string {
return carbon.Parse(birthday).SetLocale(locale).Constellation()
}
// 测试不同语言
fmt.Println(getConstellationInLocale("2020-08-05", "en")) // "Leo"
fmt.Println(getConstellationInLocale("2020-08-05", "zh-CN")) // "狮子座"
fmt.Println(getConstellationInLocale("2020-08-05", "ja")) // "しし座"
这些新增方法通过简单的API提供了完整的星座相关功能,包括星座获取、判断和多语言支持,同时保持了go-carbon一贯的简洁性和易用性。星座判断方法基于标准的天文学日期范围,确保了结果的准确性。

