【Go】八、常用字符串函数与时间函数

文章目录

1、字符串常用的函数

核心包strings

  • 求字符串长度,按字节(len函数内置,不用导包)
  • 字符串遍历
go 复制代码
//转切片
r:=[]rune(str)
  • 字符串与整数的互转
  • 查找是否包含子字符串
go 复制代码
result := strings.Contains("javaandgolang", "go")
  • 查看包含几个子字符串
  • 不区分大小写比较
  • 返回子字符串第一次出现的索引,不存在就返回-1
  • 字符串的替换,传-1为全部替换,传2即替换两个
  • 字符串切割
  • 字符串大小写转换
  • 去左右两边的空格
  • 去左右两边的指定字符
  • 去左边或右边指定的字符
go 复制代码
//左
strings.TrimLeft("~golang~", "~")
//右
strings.TrimRight("~golang~", "~")
  • 判断字符串是否以xx开头,或者以xx结尾

2、常用的时间函数

go 复制代码
import (
        "fmt"
        "time"  //核心包
)

Now()返回值是一个结构体,类型是:time.Time

go 复制代码
package main
import (
        "fmt"
        "time"
)
func main(){
        //时间和日期的函数,需要到入time包,所以你获取当前时间,就要调用函数Now函数:
        now := time.Now()
        //Now()返回值是一个结构体,类型是:time.Time
        fmt.Printf("%v ~~~ 对应的类型为:%T\n",now,now)
        //2021-02-08 17:47:21.7600788 +0800 CST m=+0.005983901 ~~~ 对应的类型为:time.Time
        //调用结构体中的方法:
        fmt.Printf("年:%v \n",now.Year())
        fmt.Printf("月:%v \n",now.Month())//月:February
        fmt.Printf("月:%v \n",int(now.Month()))//月:2
        fmt.Printf("日:%v \n",now.Day())
        fmt.Printf("时:%v \n",now.Hour())
        fmt.Printf("分:%v \n",now.Minute())
        fmt.Printf("秒:%v \n",now.Second())
}

日期格式化:

go 复制代码
now := time.Now()
//Printf将字符串直接输出:
fmt.Printf("当前年月日: %d-%d-%d 时分秒:%d:%d:%d  \n",now.Year(),now.Month(),
now.Day(),now.Hour(),now.Minute(),now.Second())

可用Sprintf得到这个时间字符串,接收到一个变量中:

go 复制代码
//Sprintf可以得到这个字符串,以便后续使用:
datestr := fmt.Sprintf("当前年月日: %d-%d-%d 时分秒:%d:%d:%d  \n",now.Year(),now.Month(),
now.Day(),now.Hour(),now.Minute(),now.Second())
fmt.Println(datestr)

now.Format 按照指定的格式,但各个数字必须是固定的(有设计go的想法的时间?)

go 复制代码
 //这个参数字符串的各个数字必须是固定的,必须这样写 
datestr2 := now.Format("2006/01/02 15/04/05")
fmt.Println(datestr2)
//选择任意的组合都是可以的,根据需求自己选择就可以(自己任意组合)。
datestr3 := now.Format("2006 15:04")
fmt.Println(datestr3)

3、内置函数

不用导包直接用:

  • len函数:统计字符串的长度,按字节进行统计
  • new函数:分配内存,传入一个类型,且类型支持:int系列, float系列, bool, string、数组和结构体struct


  • make函数:分配内存,主要用来分配引用类型(指针、slice切片、map、管道chan、interface 等)
相关推荐
yufei-coder3 分钟前
C#基础语法
开发语言·c#·.net
长天一色3 分钟前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
_.Switch15 分钟前
Python机器学习模型的部署与维护:版本管理、监控与更新策略
开发语言·人工智能·python·算法·机器学习
醉颜凉18 分钟前
银河麒麟桌面操作系统修改默认Shell为Bash
运维·服务器·开发语言·bash·kylin·国产化·银河麒麟操作系统
NiNg_1_23423 分钟前
Vue3 Pinia持久化存储
开发语言·javascript·ecmascript
带带老表学爬虫32 分钟前
java数据类型转换和注释
java·开发语言
qianbo_insist35 分钟前
simple c++ 无锁队列
开发语言·c++
千里码aicood39 分钟前
【2025】springboot教学评价管理系统(源码+文档+调试+答疑)
java·spring boot·后端·教学管理系统
BigYe程普1 小时前
我开发了一个出海全栈SaaS工具,还写了一套全栈开发教程
开发语言·前端·chrome·chatgpt·reactjs·个人开发
彭于晏6891 小时前
Android广播
android·java·开发语言