【火山引擎】取格林尼治标准时间(GMT)

最近迷上了HTTP协议,报文响应的时候有个首部字段Date,它的值就是使用格林尼治标准时间,俗称“GTM”。

// 格林治尼时间格式
// Fri, 02 Feb 2024 13:00:09 GMT

查阅了相关资料,发现格林治尼时间比北京时间晚8个小时,开始分析:

根据时间格式,第一个字母表示星期,星期的相关英文缩写为:

// 星期一     全称  Monday      简写   Mon
// 星期二     全称  Tuesday     简写   Tues
// 星期三     全称  Wednesday   简写   Wed
// 星期四     全称  Thursday    简写   Thur
// 星期五     全称  Friday      简写   Fri
// 星期六     全程  Saturday    简写   Sat
// 星期日     全称  Sunday      简写   Sun

第二个数值为日,如果是个位数需要添加0,表示01、02、03、04、05、06......31。

接下来就是月份,相关英文缩写:

// 一月       全称  January     简写 Jan
// 二月       全称  February    简写 Feb
// 三月       全称  March       简写Mar
// 四月       全称  April       简写Apr
// 五月       全称  May         简写May
// 六月       全称  June        简写 Jun
// 七月       全称  July        简写 Jul
// 八月       全称  August      简写Aug
// 九月       全称  September   简写 Sept
// 十月       全称  October     简写 Oct
// 十一月     全称  November    简写 Nov
// 十二月     全称  December    简写 Dec

2024 13:00:09表示的就是年份、小时:分钟:秒,这个没有什么好讲的了,中间有个空格,注意书写格式就行了。

以下就是完整的类代码:

<火山程序 类型 = "通常" 版本 = 1 />

包 解决方案.时间转换

类 格林尼治标准时间 <公开 @全局类 = 真>
{
    方法 取格林尼治标准时间 <公开 静态 类型 = 文本型>
    {
        //    Fri, 02 Feb 2024 13:00:09 GMT
        //    2024年2月2日星期五13:00:09 GMT
        // 一月       全称  January     简写 Jan
        // 二月       全称  February    简写 Feb
        // 三月       全称  March       简写Mar
        // 四月       全称  April       简写Apr
        // 五月       全称  May         简写May
        // 六月       全称  June        简写 Jun
        // 七月       全称  July        简写 Jul
        // 八月       全称  August      简写Aug
        // 九月       全称  September   简写 Sept
        // 十月       全称  October     简写 Oct
        // 十一月     全称  November    简写 Nov
        // 十二月     全称  December    简写 Dec

        // 星期一     全称  Monday      简写   Mon
        // 星期二     全称  Tuesday     简写   Tues
        // 星期三     全称  Wednesday   简写   Wed
        // 星期四     全称  Thursday    简写   Thur
        // 星期五     全称  Friday      简写   Fri
        // 星期六     全程  Saturday    简写   Sat
        // 星期日     全称  Sunday      简写   Sun

        变量 毫秒时间戳 <类型 = 小数>
        变量 格林尼治时间 <类型 = 小数>
        变量 星期 <类型 = 文本型>
        变量 日 <类型 = 文本型>
        变量 月 <类型 = 文本型>
        毫秒时间戳 = 取毫秒时间戳 (取现行时间 ())//取现行时间,这里的现行时间表示的是本地时间,咱电脑使用的是北京时间,再根据现行时间取出毫秒时间戳
        格林尼治时间 = 毫秒时间戳到时间 ((长整数)毫秒时间戳 - 8 * 60 * 60 * 1000)  // 格林尼治时间比北京时间晚8个小时,用现行时间减去8个小时的毫秒时间戳,就能得到格林尼治时间
        //接下来根据格林尼治时间取相关的星期、日、月份、年份、时间等。
        // 星期
        如果真 (取星期几 (格林尼治时间) == 1)  // 星期日
        {
            星期 = "Sun"
        }
        如果真 (取星期几 (格林尼治时间) == 2)  // 星期一
        {
            星期 = "Mon"
        }
        如果真 (取星期几 (格林尼治时间) == 3)  // 星期二
        {
            星期 = "Tues"
        }
        如果真 (取星期几 (格林尼治时间) == 4)  // 星期三
        {
            星期 = "Wed"
        }
        如果真 (取星期几 (格林尼治时间) == 5)  // 星期四
        {
            星期 = "Thur"
        }
        如果真 (取星期几 (格林尼治时间) == 6)  // 星期五
        {
            星期 = "Fri"
        }
        如果真 (取星期几 (格林尼治时间) == 7)  // 星期六
        {
            星期 = "Sat"
        }

        // 日
        如果真 (取日 (格林尼治时间) == 1)  // 由于取到的日是1,所以需要文本前面加上0,1~9都是同样的操作。
        {
            日 = "01"
        }
        如果真 (取日 (格林尼治时间) == 2)
        {
            日 = "02"
        }
        如果真 (取日 (格林尼治时间) == 3)
        {
            日 = "03"
        }
        如果真 (取日 (格林尼治时间) == 4)
        {
            日 = "04"
        }
        如果真 (取日 (格林尼治时间) == 5)
        {
            日 = "05"
        }
        如果真 (取日 (格林尼治时间) == 6)
        {
            日 = "06"
        }
        如果真 (取日 (格林尼治时间) == 7)
        {
            日 = "07"
        }
        如果真 (取日 (格林尼治时间) == 8)
        {
            日 = "08"
        }
        如果真 (取日 (格林尼治时间) == 9)
        {
            日 = "09"
        }
        如果真 (取日 (格林尼治时间) >= 10)  // 这里取出来的日是两位数,直接转成文本就行。
        {
            日 = 到文本 (取日 (格林尼治时间))
        }

        // 月
        如果真 (取月份 (格林尼治时间) == 1)  // 一月
        {
            月 = "Jan"
        }
        如果真 (取月份 (格林尼治时间) == 2)  // 二月
        {
            月 = "Feb"
        }
        如果真 (取月份 (格林尼治时间) == 3)  // 三月
        {
            月 = "Mar"
        }
        如果真 (取月份 (格林尼治时间) == 4)  // 四月
        {
            月 = "Apr"
        }
        如果真 (取月份 (格林尼治时间) == 5)  // 五月
        {
            月 = "May"
        }
        如果真 (取月份 (格林尼治时间) == 6)  // 六月
        {
            月 = "Jun"
        }
        如果真 (取月份 (格林尼治时间) == 7)  // 七月
        {
            月 = "Jul"
        }
        如果真 (取月份 (格林尼治时间) == 8)  // 八月
        {
            月 = "Aug"
        }
        如果真 (取月份 (格林尼治时间) == 9)  // 九月
        {
            月 = "Sept"
        }
        如果真 (取月份 (格林尼治时间) == 10)  // 十月
        {
            月 = "Oct"
        }
        如果真 (取月份 (格林尼治时间) == 11)  // 十一月
        {
            月 = "Nov"
        }
        如果真 (取月份 (格林尼治时间) == 12)  // 十二月
        {
            月 = "Dec"
        }
        返回 (星期 + ", " + 日 + " " + 月 + " " + 到文本 (取年份 (格林尼治时间)) + " " + 到文本 (取小时 (格林尼治时间)) + ":" + 到文本 (取分钟 (格林尼治时间)) + ":" + 到文本 (取秒 (格林尼治时间)) + " GMT")//返回格林尼治时间
    }
}

直接静态调用,调用方法如下:

取格林尼治标准时间 ()

调试输出格林尼治标准时间 如下:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值