程序中日期、时长等时间相关英文命名问题汇总
在開發程序時,經常會與日期、時長、時間單位等與時間相關的變量、常量、表字段等打交道,但由于英文命名及其縮寫的不規范,會造成命名前后不統一,甚至會引成歧義。本文總結出一套比較實用的縮寫命名規則,方便以后的研發工作。
與時間相關的概念總的來說包括時間點和時間長度兩個。時間點表示事件發生的那一時刻;時長表示事件持續發生多長時間。
時長:duration、timespan、timeslice、interval、period
時間點:timepoint
先來說說時長
時長表示一段時間的長度,時間長度的單位常用及在程序中命名時的英文縮寫如下:
| 中文 | 英文 | 單位的英文縮寫 | 說明 |
| 年 | year | yy | ? |
| 月 | month | mo | ? |
| 日 | day | dd | ? |
| 小時? | hour | hh,h24,h12 | hh默認表示24小時 |
| 分鐘? | minute | mi | ? |
| 秒 | second | ss | ? |
| 毫秒 | millisecond | ms | ? |
| 納秒 | nanosecond | ns | ? |
舉例:
| interval_yy | 表示間隔多少年 |
| timespan_mo | 表示以月為單位的時間跨度 |
| duration_ms? | 表示持續的時間長度,以毫秒為單位 |
| numPerYy? | 表示多少年 |
再來說說時間點
對于時間點,在命名上最好能把類型(日期、時間、日期+時間)和精度(是精確到年、月、日,還是精確到小時、分鐘、秒或是毫秒)都能表達出來。
注:為了更好的說明問題,如下表述中使用到的yyyy-MM-dd、yyyy-MM-dd HH:mm:ss,SSS等,只用來表示時間點的精度,不表示日期格式,這樣寫只是為了在表示時間點精度時看起來方便。
| 中文 | 英文 | 單位的英文縮寫 | 說明 |
| 日期+時間 | datetime | dtdd | yyyy-MM-dd,精確到日。dt是datetime的縮寫。 |
| dtmo | yyyy-MM-01,精確到月 | ||
| dtyy | yyyy-01-01,精確到年 | ||
| dtms | yyyy-MM-dd HH:mm:ss,SSS,dt是datetime的縮寫,ms是毫秒的縮寫,它們組合在一起:dtms,表示日期+時間,并且精確到毫秒。由于datetime一般都是精確到毫秒,所以也可以直接用dt表示精確到毫秒的 | ||
| dtss | yyyy-MM-dd HH:mm:ss,dt是datetime的縮寫,s是秒的縮寫,它們組合在一起:dts,表示日期+時間,并且精確到秒 | ||
| dtmi | yyyy-MM-dd HH:mm:00,dt是datetime的縮寫,m是分鐘的縮寫,它們組合在一起:dtm,表示日期+時間,并且精確到分鐘 | ||
| dthh | yyyy-MM-dd HH:00:00 | ||
| 時間 | time | tms | HH:mm:ss。t是time的縮寫 |
| tmi | HH:mm:00 | ||
| thh | HH:00:00 | ||
| tss | HH:mm:ss,SSS |
舉例:
| startDtdd | 表示開始日期,精確到日 |
| finishDtmo | 表示完成日期,精確到月 |
| start_tss | 表示開始時間,精確到毫秒 |
| finish_tmi | 表示完成時間,精確到分鐘 |
程序舉例一:
public static void doTest01() throws ParseException {SimpleDateFormat dtfDtms = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS");SimpleDateFormat dtfDtss = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");SimpleDateFormat dtfDtmi = new SimpleDateFormat("yyyy-MM-dd HH:mm");SimpleDateFormat dtfDthh = new SimpleDateFormat("yyyy-MM-dd HH");SimpleDateFormat dtfDtdd = new SimpleDateFormat("yyyy-MM-dd");SimpleDateFormat dtfDtmo = new SimpleDateFormat("yyyy-MM");SimpleDateFormat dtfDtyy = new SimpleDateFormat("yyyy");SimpleDateFormat dtfTms = new SimpleDateFormat("HH:mm:ss,SSS");SimpleDateFormat dtfTss = new SimpleDateFormat("HH:mm:ss");SimpleDateFormat dtfTmi = new SimpleDateFormat("HH:mm");SimpleDateFormat dtfThh = new SimpleDateFormat("HH");Date startDateTimeDtms = new Date();System.out.println(dtfDtms.format(startDateTimeDtms));System.out.println(dtfDtss.format(startDateTimeDtms));System.out.println(dtfDtmi.format(startDateTimeDtms));System.out.println(dtfDthh.format(startDateTimeDtms));System.out.println(dtfDtdd.format(startDateTimeDtms));System.out.println(dtfDtmo.format(startDateTimeDtms));System.out.println(dtfDtyy.format(startDateTimeDtms));System.out.println(dtfDtdd.format(startDateTimeDtms));System.out.println(dtfDtmo.format(startDateTimeDtms));System.out.println(dtfDtyy.format(startDateTimeDtms));System.out.println(dtfTms.format(startDateTimeDtms));System.out.println(dtfTss.format(startDateTimeDtms));System.out.println(dtfTmi.format(startDateTimeDtms));System.out.println(dtfThh.format(startDateTimeDtms));System.out.println("------------------------------------------------");String startDateTimeStrDtmi = dtfDtmi.format(startDateTimeDtms);System.out.println(startDateTimeStrDtmi);Date startDateTimeDtmi = dtfDtmi.parse(startDateTimeStrDtmi);System.out.println(dtfDtms.format(startDateTimeDtmi));System.out.println("------------------------------------------------");String startDateTimeStrDthh = dtfDthh.format(startDateTimeDtms);System.out.println(startDateTimeStrDthh);Date startDateTimeDthh = dtfDthh.parse(startDateTimeStrDthh);System.out.println(dtfDtms.format(startDateTimeDthh));System.out.println("------------------------------------------------");String startDateTimeStrDtdd = dtfDtdd.format(startDateTimeDtms);System.out.println(startDateTimeStrDtdd);Date startDateDtdd = dtfDtdd.parse(startDateTimeStrDtdd);System.out.println(dtfDtms.format(startDateDtdd));System.out.println("------------------------------------------------");String startDateTimeStrDtmo = dtfDtmo.format(startDateTimeDtms);System.out.println(startDateTimeStrDtmo);Date startDateDtmo = dtfDtmo.parse(startDateTimeStrDtmo);System.out.println(dtfDtms.format(startDateDtmo));System.out.println("------------------------------------------------");String startDateTimeStrDtyy = dtfDtyy.format(startDateTimeDtms);System.out.println(startDateTimeStrDtyy);Date startDateDtyy = dtfDtyy.parse(startDateTimeStrDtyy);System.out.println(dtfDtms.format(startDateDtyy)); }?運行結果:
2019-11-13 00:20:02,176
2019-11-13 00:20:02
2019-11-13 00:20
2019-11-13 00
2019-11-13
2019-11
2019
2019-11-13
2019-11
2019
00:20:02,176
00:20:02
00:20
00
------------------------------------------------
2019-11-13 00:20
2019-11-13 00:20:00,000
------------------------------------------------
2019-11-13 00
2019-11-13 00:00:00,000
------------------------------------------------
2019-11-13
2019-11-13 00:00:00,000
------------------------------------------------
2019-11
2019-11-01 00:00:00,000
------------------------------------------------
2019
2019-01-01 00:00:00,000
程序舉例二:
public static void doTest02() {DateTimeFormatter dtfDtms = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss,SSS");DateTimeFormatter dtfDtss = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");DateTimeFormatter dtfDtmi = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");DateTimeFormatter dtfDthh = DateTimeFormatter.ofPattern("yyyy-MM-dd HH");DateTimeFormatter dtfDtdd = DateTimeFormatter.ofPattern("yyyy-MM-dd");DateTimeFormatter dtfDtmo = DateTimeFormatter.ofPattern("yyyy-MM");DateTimeFormatter dtfDtyy = DateTimeFormatter.ofPattern("yyyy");DateTimeFormatter dtfTms = DateTimeFormatter.ofPattern("HH:mm:ss,SSS");DateTimeFormatter dtfTss = DateTimeFormatter.ofPattern("HH:mm:ss");DateTimeFormatter dtfTmi = DateTimeFormatter.ofPattern("HH:mm");DateTimeFormatter dtfThh = DateTimeFormatter.ofPattern("HH");LocalDateTime startDateTimeDtms = LocalDateTime.now();System.out.println(dtfDtms.format(startDateTimeDtms));System.out.println(dtfDtss.format(startDateTimeDtms));System.out.println(dtfDtmi.format(startDateTimeDtms));System.out.println(dtfDthh.format(startDateTimeDtms));System.out.println(dtfDtdd.format(startDateTimeDtms));System.out.println(dtfDtmo.format(startDateTimeDtms));System.out.println(dtfDtyy.format(startDateTimeDtms));LocalDate startDateDthh = LocalDate.now();System.out.println(dtfDtdd.format(startDateDthh));System.out.println(dtfDtmo.format(startDateDthh));System.out.println(dtfDtyy.format(startDateDthh));LocalTime startTimeTms = LocalTime.now();System.out.println(dtfTms.format(startTimeTms));System.out.println(dtfTss.format(startTimeTms));System.out.println(dtfTmi.format(startTimeTms));System.out.println(dtfThh.format(startTimeTms));System.out.println("------------------------------------------------");String startDateTimeStrDtmi = dtfDtmi.format(startDateTimeDtms);System.out.println(startDateTimeStrDtmi);LocalDateTime startDateTimeDtmi = LocalDateTime.parse(startDateTimeStrDtmi, dtfDtmi);System.out.println(dtfDtms.format(startDateTimeDtmi));System.out.println("------------------------------------------------");String startDateTimeStrDthh = dtfDthh.format(startDateTimeDtms);System.out.println(startDateTimeStrDthh);LocalDateTime startDateTimeDthh = LocalDateTime.parse(startDateTimeStrDthh, dtfDthh);System.out.println(dtfDtms.format(startDateTimeDthh));System.out.println("------------------------------------------------");String startDateTimeStrDtdd = dtfDtdd.format(startDateTimeDtms);System.out.println(startDateTimeStrDtdd);LocalDate startDateDtdd = LocalDate.parse(startDateTimeStrDtdd, dtfDtdd);System.out.println(dtfDtms.format(LocalDateTime.of(startDateDtdd, LocalTime.of(0, 0, 0, 0))));System.out.println("------------------------------------------------");String startDateTimeStrDtmo = dtfDtmo.format(startDateTimeDtms);System.out.println(startDateTimeStrDtmo);LocalDate startDateDtmo = LocalDate.parse(startDateTimeStrDtmo + "-01", dtfDtdd);System.out.println(dtfDtms.format(LocalDateTime.of(startDateDtmo, LocalTime.of(0, 0, 0, 0))));System.out.println("------------------------------------------------");String startDateTimeStrDtyy = dtfDtyy.format(startDateTimeDtms);System.out.println(startDateTimeStrDtyy);LocalDate startDateDtyy = LocalDate.parse(startDateTimeStrDtyy + "-01-01", dtfDtdd);System.out.println(dtfDtms.format(LocalDateTime.of(startDateDtyy, LocalTime.of(0, 0, 0, 0)))); }?運行結果:
2019-11-15 16:03:25,904
2019-11-15 16:03:25
2019-11-15 16:03
2019-11-15 16
2019-11-15
2019-11
2019
2019-11-15
2019-11
2019
16:03:25,904
16:03:25
16:03
16
------------------------------------------------
2019-11-15 16:03
2019-11-15 16:03:00,000
------------------------------------------------
2019-11-15 16
2019-11-15 16:00:00,000
------------------------------------------------
2019-11-15
2019-11-15 00:00:00,000
------------------------------------------------
2019-11
2019-11-01 00:00:00,000
------------------------------------------------
2019
2019-01-01 00:00:00,000
?
總結
以上是生活随笔為你收集整理的程序中日期、时长等时间相关英文命名问题汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器安装虚拟机怎么分配内存,配置虚拟机
- 下一篇: Kubernetes(K8s)-k8s服