V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sandman511
V2EX  ›  程序员

轻轻松一刻 在线征方法名:格林尼标准时间转北京时间

  •  
  •   sandman511 · 2020-01-10 14:18:52 +08:00 · 5127 次点击
    这是一个创建于 1785 天前的主题,其中的信息可能已经有所发展或是发生改变。
        public static String 格林尼标准时间转北京时间(String 格林尼标准时间) {
        	...
            ...
            return 北京时间;
        }
    

    请问这个方法名该怎么取 目前 GMT2CMT 但北京时间的简称似乎并不是 CMT
    大家常用方法的方法名喜欢取长一点还是简洁一点
    长一点的方法左右具体明了 但代码臃肿
    简介一点的反之 各有优略 大家喜好如何

    53 条回复    2020-01-12 15:52:23 +08:00
    janxin
        1
    janxin  
       2020-01-10 14:21:23 +08:00
    CST
    oneisall8955
        2
    oneisall8955  
       2020-01-10 14:21:31 +08:00   ❤️ 2
    gmt2bj
    ncwtf
        3
    ncwtf  
       2020-01-10 14:23:22 +08:00   ❤️ 1
    ```
    public static String glnbzsjZBjsj(String glnbzsj) {
    return bjsj;
    }
    ```
    explore365
        4
    explore365  
       2020-01-10 14:23:28 +08:00   ❤️ 1
    直接就这个中文就挺好,哈哈哈哈哈哈哈哈哈哈哈
    sandman511
        5
    sandman511  
    OP
       2020-01-10 14:28:15 +08:00
    @janxin 嗯 是 CST 帖子里笔误了 但是我百度搜 CST 没有北京时间的相关信息
    @explore365 我想用中文变量名 or 方法名很久了!!!!!!!!!
    sprite82
        6
    sprite82  
       2020-01-10 14:29:14 +08:00   ❤️ 1
    GMT2BeijingTime
    psychoo
        7
    psychoo  
       2020-01-10 14:31:46 +08:00   ❤️ 1
    “爱你没差,那一点时差”
    ——《爱你没差》周杰伦

    jay_anmc(string ...)
    LiYanHong
        8
    LiYanHong  
       2020-01-10 14:32:13 +08:00   ❤️ 1
    GMT2UTC8
    sockpuppet9527
        9
    sockpuppet9527  
       2020-01-10 14:33:31 +08:00
    public static String CST(String time ){
    return GMT(time,8);
    }

    public static String GMT(String time , int diff) {
    ...
    return time;
    }
    GuryYu
        10
    GuryYu  
       2020-01-10 14:35:14 +08:00
    pinepara
        11
    pinepara  
       2020-01-10 14:38:15 +08:00
    xfspace
        12
    xfspace  
       2020-01-10 14:42:42 +08:00 via Android
    @sandman511 China Standard Time 国际称 CST Asia
    CST 欧州中部时间
    atwoodSoInterest
        13
    atwoodSoInterest  
       2020-01-10 14:42:49 +08:00
    如果接手别人的代码,你希望是一长串看起来难受但是读得懂的,还是几个莫名其妙的缩写。当然是读得懂最重要啊。
    按照比较通用的命名方式来命名就已经是个靠谱好青年了,长度长一点完全是可以接受的,毕竟言简意赅是绝顶高手才能办到的。
    可读性 > 性能
    iamverylovely
        14
    iamverylovely  
       2020-01-10 14:48:49 +08:00 via Android
    gmt2cn
    winterbells
        15
    winterbells  
       2020-01-10 14:54:33 +08:00 via Android
    我也来一个,上午、中午、下午这个变量应该叫啥。。
    sandman511
        16
    sandman511  
    OP
       2020-01-10 14:54:52 +08:00
    @GuryYu
    @pinepara
    @xfspace

    CST (北美中部标准时间) 是 UTC-6 时区的知名名称之一,比 UTC (协调世界时)落后 6 个小时与 UTC 的时间偏差可写为-06:00.
    取 CST 的话比较容易误解吧 所以想找找有无更好的名称
    pinepara
        17
    pinepara  
       2020-01-10 15:12:00 +08:00
    @sandman511
    是否使用缩写取决于作用域和使用场景。
    如果场景里确实有可能同时涉及到 Central Standard Time 和 China Standard Time,甚至 Cuba Standard Time,那就避免使用缩写,直接用全称 China Standard Time。
    或者如果这是一个可能被广泛使用的功能库,也要尽量避免使用缩写。

    反之如果只是一个中国网站 /App 的代码里的一个类的私有函数,完全可以简写为 CST。
    krixaar
        18
    krixaar  
       2020-01-10 15:13:45 +08:00
    String utc_plus_8(String utc_timestamp)
    exiledkingcc
        19
    exiledkingcc  
       2020-01-10 15:17:30 +08:00   ❤️ 3
    正确做法是:toLocalTime(UTCTime utc, TimeZone tz)
    如果一定要北京时间的话,重载一个 toBeijingLocaltime(UTCTime )
    其它的都是垃圾。
    ormand1bd
        20
    ormand1bd  
       2020-01-10 15:46:42 +08:00
    GmtToLocal(xxx)
    luckyrayyy
        21
    luckyrayyy  
       2020-01-10 15:48:41 +08:00
    toBeijingTime(String GMT)
    AS4694lAS4808
        22
    AS4694lAS4808  
       2020-01-10 15:58:57 +08:00
    public String gelinnizhibiaozhuntimezhuanbeijingtime(String gelinnizhitime){}
    marcong95
        23
    marcong95  
       2020-01-10 16:01:02 +08:00
    正确做法自然是选用某一种自带时区的数据结构 toLocaleString()

    不过一定是不带时区的两个输入输出,而且不考虑本机区域设置的话,似乎 gmtToBeijingTime 比较简单准确?
    Kirscheis
        24
    Kirscheis  
       2020-01-10 16:14:49 +08:00 via Android   ❤️ 1
    1. 程序内部尽量不要使用 string 表示 time,如果输入输出必须是 string,parse 和 format 过程要分开

    2. 如非必要,别造轮子。。

    ZonedDateTime beijingTime = timestamp.atZone(ZoneId.of("Asia/Shanghai"));
    cigarzh
        25
    cigarzh  
       2020-01-10 16:21:30 +08:00
    privil
        26
    privil  
       2020-01-10 16:24:22 +08:00
    因为重名的原因,基本配置服务器都用 HKT,也是以前看文章学的。
    wr410
        27
    wr410  
       2020-01-10 16:30:52 +08:00
    GMT+8
    GMT2CST
    silenceeeee
        28
    silenceeeee  
       2020-01-10 16:32:00 +08:00
    gmt2bj
    laoyur
        29
    laoyur  
       2020-01-10 16:40:50 +08:00
    只有 格林尼治 或 格林威治
    [格林尼] 是什么鬼👻
    lithiums
        30
    lithiums  
       2020-01-10 17:04:56 +08:00
    um... 不是有一个 UTC +8. 中国标准时间 ( CST )么
    xenme
        31
    xenme  
       2020-01-10 17:11:43 +08:00 via iPhone
    你自己都写出来了,中文不好么?逃...
    格林尼标准时间转北京时间()
    dswyzx
        32
    dswyzx  
       2020-01-10 17:23:45 +08:00
    @winterbells #15 morning,noon,afternoon 不行么.

    另题主问题:反正都是从 UTC 时区转换,建议 UTCZeroToUTCEastEight
    可扩展总 24 时区随便转问题呢
    libook
        33
    libook  
       2020-01-10 17:44:28 +08:00
    gmtToBeijingTime

    或者通用一些的 Stirng convertTimeZone(String fromTime, int fromZone, int toZone)
    winterbells
        34
    winterbells  
       2020-01-10 17:48:55 +08:00 via Android
    @dswyzx 一个变量名表示这几个值🙄
    我取 period。。。
    c6h6benzene
        35
    c6h6benzene  
       2020-01-10 17:50:46 +08:00 via iPhone
    为什么我现在一看到征名帖就想到了 FuYouKeJi ()
    pmispig
        36
    pmispig  
       2020-01-10 17:52:43 +08:00
    utcToLocaltime 这个不是很简单么。。
    jinliming2
        37
    jinliming2  
       2020-01-10 17:55:30 +08:00 via iPhone
    正时区,GMT2GMT08
    负时区,GMT2GMT_08
    november
        38
    november  
       2020-01-10 17:58:32 +08:00
    g2b
    G2B
    GtoB
    davidliu645
        39
    davidliu645  
       2020-01-10 17:59:22 +08:00
    GreenwichMeanTimeToBeijingTime()
    Biscuits
        40
    Biscuits  
       2020-01-10 18:00:35 +08:00
    简介明了的,这个明明可以的。
    不行你加注释呗。
    alex0721
        41
    alex0721  
       2020-01-10 19:35:23 +08:00
    trans_utc_2_bj
    Cbdy
        42
    Cbdy  
       2020-01-10 20:19:06 +08:00 via Android
    tz2t8
    20150517
        43
    20150517  
       2020-01-10 21:48:40 +08:00
    GMT 不是 UTC 吧,确定你要用 GMT?
    CloudnuY
        44
    CloudnuY  
       2020-01-10 21:56:26 +08:00
    居然没有“富有转换器”
    ZXCDFGTYU
        45
    ZXCDFGTYU  
       2020-01-10 22:06:15 +08:00
    献丑了...
    getBeiJingTimeStringByUTCTimeString($utcTime){}
    hantsy
        46
    hantsy  
       2020-01-10 22:21:26 +08:00
    为什么要转???

    用 Java 8 中的 DateTime API。ZonedDatetime 支持时区,切换一下时区,打印出来就行了。
    freakxx
        47
    freakxx  
       2020-01-11 00:55:36 +08:00
    python

    def covert_gmt_to_local_time(timezone, now=None)


    函数直接写死的话,假如遇到上海,又得写一个,遇到广州又得写一个;
    freakxx
        48
    freakxx  
       2020-01-11 00:56:54 +08:00
    @freakxx #47

    错别字:
    convert_gmt_to_local_time

    covert -> convert
    chinvo
        49
    chinvo  
       2020-01-11 03:07:40 +08:00 via iPhone
    toPekTime ( IATA 码
    larsenlouis
        50
    larsenlouis  
       2020-01-11 09:04:35 +08:00
    像 v 站的页脚一样,用当地机场代码 TC2PEK
    Lonersun
        51
    Lonersun  
       2020-01-11 13:29:56 +08:00
    utc2prc
    paouke
        52
    paouke  
       2020-01-11 14:31:36 +08:00
    toP8
    luozic
        53
    luozic  
       2020-01-12 15:52:23 +08:00 via iPhone
    接口的方式定义,最后实现接口是北京时间。 除非就是时钟应用,否则推荐 jodatime or jdk8 之后自带的时间
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   937 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:24 · PVG 05:24 · LAX 13:24 · JFK 16:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.