joda-time使用

特性

  • 不可变性【Immutability】:joda-time对象具有不可变性(只能在构造的时候指定,并没有set方法),所以改线安全(也有线程安全的类MutableDateTime,操作方法类同)
  • 瞬间性【Instant】,暂时不明白
  • 局部性【Partial】,暂时不明白
  • 年表【Chronology】,暂时不明白
  • 时区【Time zone】时区是值一个相对于英国格林威治的地理位置,用于计算时间。要了解事件发生的精确时间,还必须知道发生此事件的位置。任何严格的时间计算都必须涉及时区(或相对于 GMT),除非在同一个时区内发生了相对时间计算(即时这样时区也很重要,如果事件对于位于另一个时区的各方存在利益关系的话)DateTimeZone 是 Joda 库用于封装位置概念的类。许多日期和时间计算都可以在不涉及时区的情况下完成,但是仍然需要了解 DateTimeZone 如何影响 Joda 的操作。默认时间,即从运行代码的机器的系统时钟检索到的时间,在大部分情况下被使用。

使用

格式化字符

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 Symbol  Meaning                      Presentation  Examples
 ------  -------                      ------------  -------
 G       era                          text          AD
 C       century of era (>=0)         number        20
 Y       year of era (>=0)            year          1996

 x       weekyear                     year          1996
 w       week of weekyear             number        27
 e       day of week                  number        2
 E       day of week                  text          Tuesday; Tue

 y       year                         year          1996
 D       day of year                  number        189
 M       month of year                month         July; Jul; 07
 d       day of month                 number        10

 a       halfday of day               text          PM
 K       hour of halfday (0~11)       number        0
 h       clockhour of halfday (1~12)  number        12

 H       hour of day (0~23)           number        0
 k       clockhour of day (1~24)      number        24
 m       minute of hour               number        30
 s       second of minute             number        55
 S       fraction of second           millis        978

 z       time zone                    text          Pacific Standard Time; PST
 Z       time zone offset/id          zone          -0800; -08:00; America/Los_Angeles

 '       escape for text              delimiter
 ''      single quote                 literal       '

字段说明

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Extended      Basic       Fields
2005-03-25    20050325    year/monthOfYear/dayOfMonth
2005-03       2005-03     year/monthOfYear
2005--25      2005--25    year/dayOfMonth *
2005          2005        year
--03-25       --0325      monthOfYear/dayOfMonth
--03          --03        monthOfYear
---03         ---03       dayOfMonth
2005-084      2005084     year/dayOfYear
-084          -084        dayOfYear
2005-W12-5    2005W125    weekyear/weekOfWeekyear/dayOfWeek
2005-W-5      2005W-5     weekyear/dayOfWeek *
2005-W12      2005W12     weekyear/weekOfWeekyear
-W12-5        -W125       weekOfWeekyear/dayOfWeek
-W12          -W12        weekOfWeekyear
-W-5          -W-5        dayOfWeek
10:20:30.040  102030.040  hour/minute/second/milli
10:20:30      102030      hour/minute/second
10:20         1020        hour/minute
10            10          hour
-20:30.040    -2030.040   minute/second/milli
-20:30        -2030       minute/second
-20           -20         minute
--30.040      --30.040    second/milli
--30          --30        second
---.040       ---.040     milli *
10-30.040     10-30.040   hour/second/milli *
10:20-.040    1020-.040   hour/minute/milli *
10-30         10-30       hour/second *
10--.040      10--.040    hour/milli *
-20-.040      -20-.040    minute/milli *

Quote

java  joda 

Docker常见问题

以下是实践过程中遇到的一些问题,记下来以防忘记

  • **现象:**Repository ***************** already being pulled by another client. Waiting.
  • **原因:**暂时不清楚
  • **解决办法:**service docker restart或systemctl restart docker

  • **现象:**Cannot connect to the Docker daemon. Is ‘docker -d’ running on this host?
  • **原因:**经查docker进程不在了,但确定是以服务方式启动的(service docker start或systemctl start docker),有可能是传说中的bug导致Docker退出了吧
  • **解决办法:**启动docker就好了,在var目录未找到相关日志


  • 现象:# docker-compose rm -f inspservice Going to remove std40dev_inspservice_1 Removing std40dev_inspservice_1 … error ERROR: for std40dev_inspservice_1 driver “overlay” failed to remove root filesystem for 32f8c314b798791e30e5fe9ddad26e61a222b06af64d9e4cde0077abb2d08702: remove /eyas/docker/sys/overlay/103a719b500d2f68845551653117260be206d3b07f54101d38d68d484b093995/merged: device or resource busy
  • **原因:**可能是有其他进程占用,最大可能是容器停止的时候并未释放对该容器数据文件的操作句柄
  • **解决办法:**unmount不行,可能是版本不对,找不到对应的mount记录 重启docker也不行,重启操作系统解决

  • **现象:**当启动的服务过多,或机器负载过重,可能会出现以下错误: ERROR: for std40dev_sysservice_1 UnixHTTPConnectionPool(host=‘localhost’, port=None): Read timed out. (read timeout=60) 导致查看日志的shell报错: # docker logs –tail=100 -f std40dev_inspservice_1 error from daemon in stream: Error grabbing logs: EOF
  • **原因:**不明
  • **解决办法:**注销,重新登录就好了,也有可能过一会儿重试就好了

Git创建用户key

Git创建用户key

以Git bash ssh为例:

进入Git bash ssh目录,一般为C:\Users\[用户]\.ssh/home/[用户]/.ssh

1
ssh-keygen -t rsa -b 4096 -C "name@domain.com"

注:生成文件名的时候最好不要修改文件名,会导致提示输入密码(即失败)

[阅读全文]

CentOS安装mysql5.7

安装

下载MySQL yum源安装包:

https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

安装MySQL yum源:

1
yum localinstall mysql57-community-release-el7-11.noarch.rpm

安装

1
yum install mysql-community-server

配置

编辑/etc/my.cnf文件,添加一行配置

1
skip-grant-tables = 1

启动服务

1
systemctl start mysqld

连接至MySQL服务

因为配置了跳过密码要求,输入mysql -u -p之后回车,提示输入密码的时候继续回车就可以连接至mysql了 修改root密码:

[阅读全文]

Windows安装配置MySQL5.7

下载,地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

解压至安装的位置

配置环境变量:

  1. MYSQL,目标:MySQL安装目录
  2. 添加PATH,目标:%MySQL%\bin

进入MySQL的bin目录,安装MySQL服务,使用管理员打开命令行,执行:

1
2
cd %MYSQL%\bin # 这一步是否有必要,未验证
mysqld -install

添加配置文件:my.ini(未验证,未使用配置)

招行初始化:

1
mysqld --initialize

稍等一会儿

[阅读全文]

MySQL5.7修改root密码

当前以CentOS 7,MySQL5.7.18为例,小版本有差异的!!!

编辑/etc/my.cnf 在[mysqld]下面添加

1
skip-grant-tables=1

重启mysql

1
systemctl restart mysqld

修改root密码,字段并非某些文章里说的password字段(5.7)版改为authentication_string字段,语句

[阅读全文]
mysql 

MacOS常见问题

地址栏显示/隐藏完整路径

  1. 显示完整路径 defaults write com.apple.finder _FXShowPosixPathInTitle -bool TRUE;killall Finder

  2. 隐藏路径 defaults delete com.apple.finder _FXShowPosixPathInTitle;killall Finder

安装brew

官网:https://brew.sh/ 先安装brew:/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

支持rar解压

brew安装rar:brew install unrar 解压:unrar x 文件名.rar

[阅读全文]
macOS 

关于域名TTL

Time To Live,缓存的生存时间。指地方dns缓存您域名记录信息的时间,缓存失效后会再次到DNSPod获取记录值。

  • 600(10分钟):建议正常情况下使用 600。
  • 60(1分钟):如果您经常修改IP,修改记录一分钟即可生效。长期使用 60,解析速度会略受影响。
  • 3600(1小时):如果您IP极少变动(一年几次),建议选择 3600,解析速度快。如果要修改IP,提前一天改为 60,即可快速生效。
DNS  TTL