> 技术文档 > 我的第一个开源项目:从0到1,我在GitHub写下的成长印记

我的第一个开源项目:从0到1,我在GitHub写下的成长印记


文章目录

    • 每日一句正能量
    • 前言
    • ✨ 一、写在前面:那天我点下了 “Create Repository”
    • 🚀 二、为什么我要做这件事?
    • 🛠️ 三、CommonUtilLibrary 是什么?
    • ⚡ 四、第一次 Star 和第一次 Issue
    • 🧭 五、我从中学到了什么?
      • 1. **工程意识的提升**
      • 2. **技术沟通能力**
      • 3. **自驱力 & 成就感**
    • 📦 六、项目目前的状态与进展
    • 📸 七、项目结构截图
    • 🧩 八、建议每一个开发者都拥有自己的开源仓库
    • 📬 九、结语:一颗 Star,一段成长

在这里插入图片描述

每日一句正能量

没有到手的东西,总是比到手的稀奇,但不一定比我们已拥有的更好。有些事知道了就好,不必去多说。有些人认识了也就好,不必去深交。你若是找不到坚持下去的理由,那么你就找一个重新开始的理由,生活本来就这么简单。


前言

“你写的第一行代码,或许会被忘记。但你第一个开源项目的星星,却可能照亮你的整个开发旅程。”


✨ 一、写在前面:那天我点下了 “Create Repository”

很多年后回头看,我依然清晰记得那一刻。

那是一个再普通不过的深夜,桌上泡面还冒着热气,我却一边打着哈欠一边兴奋地敲下:

git init

项目名叫 CommonUtilLibrary,一个集成了日期处理、字符串扩展、通用加解密、线程安全工具等模块的 Java 工具集,托管在 GitHub 上:https://github.com/AbrahamCaiJin/CommonUtilLibrary

说实话,这并不是一个“惊艳”的项目。但对我而言,它就是我的「开源初体验」。


🚀 二、为什么我要做这件事?

还记得我写这库的初衷,仅仅是因为——工作中重复写了太多重复逻辑,比如:

  • SharePreference缓存数据 → AppSharePreferenceMgr
  • 银行卡管理 → BankCheck
  • 提供App数据清理工作的类 → AppCleanMgr
  • 缓存工具类 → AppACache
  • App应用退出 → AppExit2Back
  • 管理和回收Activity → AppDavikActivityMgr
  • 获取App应用版本信息 → AppApplicationMgr
  • 软键盘管理 → AppKeyBoardMgr
  • App网络管理 → AppNetworkMgr
  • 手机管理工具类 → AppPhoneMgr
  • 反射工具类 → AppReflectionMgr
  • 获取本地指定资源信息 → AppResourceMgr
  • 字符串判断工具类 → AppStringUtils
    … …

这些逻辑虽然不复杂,但在多个项目中高频出现,写着写着就有了个想法:

👉 何不把这些公共方法统一整理、封装并模块化?

而这时,“开源”这两个字像一道光突然照进来:

“能不能不只是自己用,还分享给其他开发者?”


🛠️ 三、CommonUtilLibrary 是什么?

我给它的定义是:“一个轻量、易用的 Java 通用工具集。”

主要模块包括:

模块名 功能概述 AppDateMgr 日期计算、格式转换、时间区间等 AppStringUtils 字符串非空判断、格式标准化 EncryptUtils AES、RSA、Base64、MD5 等加解密封装 JsonUtils 封装了 Jackson 与 Gson 的通用转换接口 SafeTools 提供线程安全容器初始化方法、原子操作封装

👆 部分代码如下

BankCheck.java

package com.jingewenku.abrahamcaijin.commonutil;import com.jingewenku.abrahamcaijin.commonutil.klog.KLog;/** * @Description:主要功能:银行卡管理 * @Prject: CommonUtilLibrary * @Package: com.jingewenku.abrahamcaijin.commonutil * @author: AbrahamCaiJin * @date: 2017年05月15日 11:14 * @Copyright: 个人版权所有 * @Company: * @version: 1.0.0 *//* 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心, 因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。 该校验的过程: 1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。 2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。 3、将奇数位总和加上偶数位总和,结果应该可以被10整除。 例如,卡号是:5432123456788881 则奇数、偶数位(用红色标出)分布:5432123456788881 奇数位和=35 偶数位乘以2(有些要减去9)的结果:1 6 2 6 1 5 7 7,求和=35。 最后35+35=70 可以被10整除,认定校验通过。 */public class BankCheck { /* * 银行卡是由”发卡行标识代码 + 自定义 + 校验码 “等部分组成的 BIN号 银联标准卡与以往发行的银行卡最直接的区别就是其卡号前6位数字的不同。 * 银行卡卡号的前6位是用来表示发卡银行或机构的,称为“发卡行识别码”(Bank Identification Number,缩写为“BIN”)。 * 银联标准卡是由国内各家商业银行 * (含邮储、信用社)共同发行、符合银联业务规范和技术标准、卡正面右下角带有“银联”标识(目前,新发行的银联标准卡一定带有国际化的银联新标识 * ,新发的非银联标准卡使用旧的联网通用银联标识)、 卡号前6位为622126至622925之一的银行卡,是中国银行卡产业共有的民族品牌。 */ // BIN号 private final static String[] BANKBIN = { \"621098\", \"622150\", \"622151\", \"622181\", \"622188\", \"955100\", \"621095\", \"620062\", \"621285\", \"621798\", \"621799\", \"621797\", \"620529\", \"622199\", \"621096\", \"621622\", \"623219\", \"621674\", \"623218\", \"621599\", \"370246\", \"370248\", \"370249\", \"427010\", \"427018\", \"427019\", \"427020\", \"427029\", \"427030\", \"427039\", \"370247\", \"438125\", \"438126\", \"451804\", \"451810\", \"451811\", \"458071\", \"489734\", \"489735\", \"489736\", \"510529\", \"427062\", \"524091\", \"427064\", \"530970\", \"530990\", \"558360\", \"620200\", \"620302\", \"620402\", \"620403\", \"620404\", \"524047\", \"620406\", \"620407\", \"525498\", \"620409\", \"620410\", \"620411\", \"620412\", \"620502\", \"620503\", \"620405\", \"620408\", \"620512\", \"620602\", \"620604\", \"620607\", \"620611\", \"620612\", \"620704\", \"620706\", \"620707\", \"620708\", \"620709\", \"620710\", \"620609\", \"620712\", \"620713\", \"620714\", \"620802\", \"620711\", \"620904\", \"620905\", \"621001\", \"620902\", \"621103\", \"621105\", \"621106\", \"621107\", \"621102\", \"621203\", \"621204\", \"621205\", \"621206\", \"621207\", \"621208\", \"621209\", \"621210\", \"621302\", \"621303\", \"621202\", \"621305\", \"621306\", \"621307\", \"621309\", \"621311\", \"621313\", \"621211\", \"621315\", \"621304\", \"621402\", \"621404\", \"621405\", \"621406\", \"621407\", \"621408\", \"621409\", \"621410\", \"621502\", \"621317\", \"621511\", \"621602\", \"621603\", \"621604\", \"621605\", \"621608\", \"621609\", \"621610\", \"621611\", \"621612\", \"621613\", \"621614\", \"621615\", \"621616\", \"621617\", \"621607\", \"621606\", \"621804\", \"621807\", \"621813\", \"621814\", \"621817\", \"621901\", \"621904\", \"621905\", \"621906\", \"621907\", \"621908\", \"621909\", \"621910\", \"621911\", \"621912\", \"621913\", \"621915\", \"622002\", \"621903\", \"622004\", \"622005\", \"622006\", \"622007\", \"622008\", \"622010\", \"622011\", \"622012\", \"621914\", \"622015\", \"622016\", \"622003\", \"622018\", \"622019\", \"622020\", \"622102\", \"622103\", \"622104\", \"622105\", \"622013\", \"622111\", \"622114\", \"622200\", \"622017\", \"622202\", \"622203\", \"622208\", \"622210\", \"622211\", \"622212\", \"622213\", \"622214\", \"622110\", \"622220\", \"622223\", \"622225\", \"622229\", \"622230\", \"622231\", \"622232\", \"622233\", \"622234\", \"622235\", \"622237\", \"622215\", \"622239\", \"622240\", \"622245\", \"622224\", \"622303\", \"622304\", \"622305\", \"622306\", \"622307\", \"622308\", \"622309\", \"622238\", \"622314\", \"622315\", \"622317\", \"622302\", \"622402\", \"622403\", \"622404\", \"622313\", \"622504\", \"622505\", \"622509\", \"622513\", \"622517\", \"622502\", \"622604\", \"622605\", \"622606\", \"622510\", \"622703\", \"622715\", \"622806\", \"622902\", \"622903\", \"622706\", \"623002\", \"623006\", \"623008\", \"623011\", \"623012\", \"622904\", \"623015\", \"623100\", \"623202\", \"623301\", \"623400\", \"623500\", \"623602\", \"623803\", \"623901\", \"623014\", \"624100\", \"624200\", \"624301\", \"624402\", \"62451804\", \"62451810\", \"62451811\", \"62458071\", \"623700\", \"628288\", \"624000\", \"628286\", \"622206\", \"621225\", \"526836\", \"513685\", \"543098\", \"458441\", \"620058\", \"621281\", \"622246\", \"900000\", \"544210\", \"548943\", \"370267\", \"621558\", \"621559\", \"621722\", \"621723\", \"620086\", \"621226\", \"402791\", \"427028\", \"427038\", \"548259\", \"356879\", \"356880\", \"356881\", \"356882\", \"528856\", \"621618\", \"620516\", \"621227\", \"621721\", \"900010\", \"625330\", \"625331\", \"625332\", \"623062\", \"622236\", \"621670\", \"524374\", \"550213\", \"374738\", \"374739\", \"621288\", \"625708\", \"625709\", \"622597\", \"622599\", \"360883\", \"360884\", \"625865\", \"625866\", \"625899\", \"621376\", \"620054\", \"620142\", \"621428\", \"625939\", \"621434\", \"625987\", \"621761\", \"621749\", \"620184\", \"621300\", \"621378\", \"625114\", \"622159\", \"621720\", \"625021\", \"625022\", \"621379\", \"620114\", \"620146\", \"621724\", \"625918\", \"621371\", \"620143\", \"620149\", \"621414\", \"625914\", \"621375\", \"620187\", \"621433\", \"625986\", \"621370\", \"625925\", \"622926\", \"622927\", \"622928\", \"622929\", \"622930\", \"622931\", \"620124\", \"620183\", \"620561\", \"625116\", \"622227\", \"621372\", \"621464\", \"625942\", \"622158\", \"625917\", \"621765\", \"620094\", \"620186\", \"621719\", \"621719\", \"621750\", \"621377\", \"620148\", \"620185\", \"621374\", \"621731\", \"621781\", \"552599\", \"623206\", \"621671\", \"620059\", \"403361\", \"404117\", \"404118\", \"404119\", \"404120\", \"404121\", \"463758\", \"514027\", \"519412\", \"519413\", \"520082\", \"520083\", \"558730\", \"621282\", \"621336\", \"621619\", \"622821\", \"622822\", \"622823\", \"622824\", \"622825\", \"622826\", \"622827\", \"622828\", \"622836\", \"622837\", \"622840\", \"622841\", \"622843\", \"622844\", \"622845\", \"622846\", \"622847\", \"622848\", \"622849\", \"623018\", \"625996\", \"625997\", \"625998\", \"628268\", \"625826\", \"625827\", \"548478\", \"544243\", \"622820\", \"622830\", \"622838\", \"625336\", \"628269\", \"620501\", \"621660\", \"621661\", \"621662\", \"621663\", \"621665\", \"621667\", \"621668\", \"621669\", \"621666\", \"625908\", \"625910\", \"625909\", \"356833\", \"356835\", \"409665\", \"409666\", \"409668\", \"409669\", \"409670\", \"409671\", \"409672\", \"456351\", \"512315\", \"512316\", \"512411\", \"512412\", \"514957\", \"409667\", \"518378\", \"518379\", \"518474\", \"518475\", \"518476\", \"438088\", \"524865\", \"525745\", \"525746\", \"547766\", \"552742\", \"553131\", \"558868\", \"514958\", \"622752\", \"622753\", \"622755\", \"524864\", \"622757\", \"622758\", \"622759\", \"622760\", \"622761\", \"622762\", \"622763\", \"601382\", \"622756\", \"628388\", \"621256\", \"621212\", \"620514\", \"622754\", \"622764\", \"518377\", \"622765\", \"622788\", \"621283\", \"620061\", \"621725\", \"620040\", \"558869\", \"621330\", \"621331\", \"621332\", \"621333\", \"621297\", \"377677\", \"621568\", \"621569\", \"625905\", \"625906\", \"625907\", \"628313\", \"625333\", \"628312\", \"623208\", \"621620\", \"621756\", \"621757\", \"621758\", \"621759\", \"621785\", \"621786\", \"621787\", \"621788\", \"621789\", \"621790\", \"621672\", \"625337\", \"625338\", \"625568\", \"621648\", \"621248\", \"621249\", \"622750\", \"622751\", \"622771\", \"622772\", \"622770\", \"625145\", \"620531\", \"620210\", \"620211\", \"622479\", \"622480\", \"622273\", \"622274\", \"621231\", \"621638\", \"621334\", \"625140\", \"621395\", \"622725\", \"622728\", \"621284\", \"421349\", \"434061\", \"434062\", \"436728\", \"436742\", \"453242\", \"491031\", \"524094\", \"526410\", \"544033\", \"552245\", \"589970\", \"620060\", \"621080\", \"621081\", \"621466\", \"621467\", \"621488\", \"621499\", \"621598\", \"621621\", \"621700\", \"622280\", \"622700\", \"622707\", \"622966\", \"622988\", \"625955\", \"625956\", \"553242\", \"621082\", \"621673\", \"623211\", \"356896\", \"356899\", \"356895\", \"436718\", \"436738\", \"436745\", \"436748\", \"489592\", \"531693\", \"532450\", \"532458\", \"544887\", \"552801\", \"557080\", \"558895\", \"559051\", \"622166\", \"622168\", \"622708\", \"625964\", \"625965\", \"625966\", \"628266\", \"628366\", \"625362\", \"625363\", \"628316\", \"628317\", \"620021\", \"620521\", \"405512\", \"601428\", \"405512\", \"434910\", \"458123\", \"458124\", \"520169\", \"522964\", \"552853\", \"601428\", \"622250\", \"622251\", \"521899\", \"622254\", \"622255\", \"622256\", \"622257\", \"622258\", \"622259\", \"622253\", \"622261\", \"622284\", \"622656\", \"628216\", \"622252\", \"66405512\", \"622260\", \"66601428\", \"955590\", \"955591\", \"955592\", \"955593\", \"628218\", \"622262\", \"621069\", \"620013\", \"625028\", \"625029\", \"621436\", \"621002\", \"621335\", \"433670\", \"433680\", \"442729\", \"442730\", \"620082\", \"622690\", \"622691\", \"622692\", \"622696\", \"622698\", \"622998\", \"622999\", \"433671\", \"968807\", \"968808\", \"968809\", \"621771\", \"621767\", \"621768\", \"621770\", \"621772\", \"621773\", \"620527\", \"356837\", \"356838\", \"486497\", \"622660\", \"622662\", \"622663\", \"622664\", \"622665\", \"622666\", \"622667\", \"622669\", \"622670\", \"622671\", \"622672\", \"622668\", \"622661\", \"622674\", \"622673\", \"620518\", \"621489\", \"621492\", \"620535\", \"623156\", \"621490\", \"621491\", \"620085\", \"623155\", \"623157\", \"623158\", \"623159\", \"999999\", \"621222\", \"623020\", \"623021\", \"623022\", \"623023\", \"622630\", \"622631\", \"622632\", \"622633\", \"622615\", \"622616\", \"622618\", \"622622\", \"622617\", \"622619\", \"415599\", \"421393\", \"421865\", \"427570\", \"427571\", \"472067\", \"472068\", \"622620\", \"621691\", \"545392\", \"545393\", \"545431\", \"545447\", \"356859\", \"356857\", \"407405\", \"421869\", \"421870\", \"421871\", \"512466\", \"356856\", \"528948\", \"552288\", \"622600\", \"622601\", \"622602\", \"517636\", \"622621\", \"628258\", \"556610\", \"622603\", \"464580\", \"464581\", \"523952\", \"545217\", \"553161\", \"356858\", \"622623\", \"625911\", \"377152\", \"377153\", \"377158\", \"377155\", \"625912\", \"625913\", \"356885\", \"356886\", \"356887\", \"356888\", \"356890\", \"402658\", \"410062\", \"439188\", \"439227\", \"468203\", \"479228\", \"479229\", \"512425\", \"521302\", \"524011\", \"356889\", \"545620\", \"545621\", \"545947\", \"545948\", \"552534\", \"552587\", \"622575\", \"622576\", \"622577\", \"622579\", \"622580\", \"545619\", \"622581\", \"622582\", \"622588\", \"622598\", \"622609\", \"690755\", \"690755\", \"545623\", \"621286\", \"620520\", \"621483\", \"621485\", \"621486\", \"628290\", \"622578\", \"370285\", \"370286\", \"370287\", \"370289\", \"439225\", \"518710\", \"518718\", \"628362\", \"439226\", \"628262\", \"625802\", \"625803\", \"621299\", \"966666\", \"622909\", \"622908\", \"438588\", \"438589\", \"461982\", \"486493\", \"486494\", \"486861\", \"523036\", \"451289\", \"527414\", \"528057\", \"622901\", \"622902\", \"622922\", \"628212\", \"451290\", \"524070\", \"625084\", \"625085\", \"625086\", \"625087\", \"548738\", \"549633\", \"552398\", \"625082\", \"625083\", \"625960\", \"625961\", \"625962\", \"625963\", \"356851\", \"356852\", \"404738\", \"404739\", \"456418\", \"498451\", \"515672\", \"356850\", \"517650\", \"525998\", \"622177\", \"622277\", \"622516\", \"622517\", \"622518\", \"622520\", \"622521\", \"622522\", \"622523\", \"628222\", \"628221\", \"984301\", \"984303\", \"622176\", \"622276\", \"622228\", \"621352\", \"621351\", \"621390\", \"621792\", \"625957\", \"625958\", \"621791\", \"620530\", \"625993\", \"622519\", \"621793\", \"621795\", \"621796\", \"622500\", \"623078\", \"622384\", \"940034\", \"940015\", \"622886\", \"622391\", \"940072\", \"622359\", \"940066\", \"622857\", \"940065\", \"621019\", \"622309\", \"621268\", \"622884\", \"621453\", \"622684\", \"621016\", \"621015\", \"622950\", \"622951\", \"621072\", \"623183\", \"623185\", \"621005\", \"622172\", \"622985\", \"622987\", \"622267\", \"622278\", \"622279\", \"622468\", \"622892\", \"940021\", \"621050\", \"620522\", \"356827\", \"356828\", \"356830\", \"402673\", \"402674\", \"438600\", \"486466\", \"519498\", \"520131\", \"524031\", \"548838\", \"622148\", \"622149\", \"622268\", \"356829\", \"622300\", \"628230\", \"622269\", \"625099\", \"625953\", \"625350\", \"625351\", \"625352\", \"519961\", \"625839\", \"421317\", \"602969\", \"621030\", \"621420\", \"621468\", \"623111\", \"422160\", \"422161\", \"622865\", \"940012\", \"623131\", \"622178\", \"622179\", \"628358\", \"622394\", \"940025\", \"621279\", \"622281\", \"622316\", \"940022\", \"621418\", \"512431\", \"520194\", \"621626\", \"623058\", \"602907\", \"622986\", \"622989\", \"622298\", \"622338\", \"940032\", \"623205\", \"621977\", \"990027\", \"622325\", \"623029\", \"623105\", \"621244\", \"623081\", \"623108\", \"566666\", \"622455\", \"940039\", \"622466\", \"628285\", \"622420\", \"940041\", \"623118\", \"603708\", \"622993\", \"623070\", \"623069\", \"623172\", \"623173\", \"622383\", \"622385\", \"628299\", \"603506\", \"603367\", \"622878\", \"623061\", \"623209\", \"628242\", \"622595\", \"622303\", \"622305\", \"621259\", \"622596\", \"622333\", \"940050\", \"621439\", \"623010\", \"621751\", \"628278\", \"625502\", \"625503\", \"625135\", \"622476\", \"621754\", \"622143\", \"940001\", \"623026\", \"623086\", \"628291\", \"621532\", \"621482\", \"622135\", \"622152\", \"622153\", \"622154\", \"622996\", \"622997\", \"940027\", \"623099\", \"623007\", \"940055\", \"622397\", \"622398\", \"940054\", \"622331\", \"622426\", \"625995\", \"621452\", \"628205\", \"628214\", \"625529\", \"622428\", \"621529\", \"622429\", \"621417\", \"623089\", \"623200\", \"940057\", \"622311\", \"623119\", \"622877\", \"622879\", \"621775\", \"623203\", \"603601\", \"622137\", \"622327\", \"622340\", \"622366\", \"622134\", \"940018\", \"623016\", \"623096\", \"940049\", \"622425\", \"622425\", \"621577\", \"622485\", \"623098\", \"628329\", \"621538\", \"940006\", \"621269\", \"622275\", \"621216\", \"622465\", \"940031\", \"621252\", \"622146\", \"940061\", \"621419\", \"623170\", \"622440\", \"940047\", \"940017\", \"622418\", \"623077\", \"622413\", \"940002\", \"623188\", \"622310\", \"940068\", \"622321\", \"625001\", \"622427\", \"940069\", \"623039\", \"628273\", \"622370\", \"683970\", \"940074\", \"621437\", \"628319\", \"990871\", \"622308\", \"621415\", \"623166\", \"622132\", \"621340\", \"621341\", \"622140\", \"623073\", \"622147\", \"621633\", \"622301\", \"623171\", \"621422\", \"622335\", \"622336\", \"622165\", \"622315\", \"628295\", \"625950\", \"621760\", \"622337\", \"622411\", \"623102\", \"622342\", \"623048\", \"622367\", \"622392\", \"623085\", \"622395\", \"622441\", \"622448\", \"621413\", \"622856\", \"621037\", \"621097\", \"621588\", \"623032\", \"622644\", \"623518\", \"622870\", \"622866\", \"623072\", \"622897\", \"628279\", \"622864\", \"621403\", \"622561\", \"622562\", \"622563\", \"622167\", \"622777\", \"621497\", \"622868\", \"622899\", \"628255\", \"625988\", \"622566\", \"622567\", \"622625\", \"622626\", \"625946\", \"628200\", \"621076\", \"504923\", \"622173\", \"622422\", \"622447\", \"622131\", \"940076\", \"621579\", \"622876\", \"622873\", \"622962\", \"622936\", \"623060\", \"622937\", \"623101\", \"621460\", \"622939\", \"622960\", \"623523\", \"621591\", \"622961\", \"628210\", \"622283\", \"625902\", \"621010\", \"622980\", \"623135\", \"621726\", \"621088\", \"620517\", \"622740\", \"625036\", \"621014\", \"621004\", \"622972\", \"623196\", \"621028\", \"623083\", \"628250\", \"623121\", \"621070\", \"628253\", \"622979\", \"621035\", \"621038\", \"621086\", \"621498\", \"621296\", \"621448\", \"622945\", \"621755\", \"622940\", \"623120\", \"628355\", \"621089\", \"623161\", \"628339\", \"621074\", \"621515\", \"623030\", \"621345\", \"621090\", \"623178\", \"621091\", \"623168\", \"621057\", \"623199\", \"621075\", \"623037\", \"628303\", \"621233\", \"621235\", \"621223\", \"621780\", \"621221\", \"623138\", \"628389\", \"621239\", \"623068\", \"621271\", \"628315\", \"621272\", \"621738\", \"621273\", \"623079\", \"621263\", \"621325\", \"623084\", \"621327\", \"621753\", \"628331\", \"623160\", \"621366\", \"621388\", \"621348\", \"621359\", \"621360\", \"621217\", \"622959\", \"621270\", \"622396\", \"622511\", \"623076\", \"621391\", \"621339\", \"621469\", \"621625\", \"623688\", \"623113\", \"621601\", \"621655\", \"621636\", \"623182\", \"623087\", \"621696\", \"622955\", \"622478\", \"940013\", \"621495\", \"621688\", \"623162\", \"622462\", \"628272\", \"625101\", \"622323\", \"623071\", \"603694\", \"622128\", \"622129\", \"623035\", \"623186\", \"621522\", \"622271\", \"940037\", \"940038\", \"985262\", \"622322\", \"628381\", \"622481\", \"622341\", \"940058\", \"623115\", \"621258\", \"621465\", \"621528\", \"622328\", \"940062\", \"625288\", \"623038\", \"625888\", \"622332\", \"940063\", \"623123\", \"622138\", \"621066\", \"621560\", \"621068\", \"620088\", \"621067\", \"622531\", \"622329\", \"623103\", \"622339\", \"620500\", \"621024\", \"622289\", \"622389\", \"628300\", \"625516\", \"621516\", \"622859\", \"622869\", \"623075\", \"622895\", \"623125\", \"622947\", \"621561\", \"623095\", \"621073\", \"623109\", \"621361\", \"623033\", \"623207\", \"622891\", \"621363\", \"623189\", \"623510\", \"622995\", \"621053\", \"621230\", \"621229\", \"622218\", \"628267\", \"621392\", \"621481\", \"621310\", \"621396\", \"623251\", \"628351\" }; // \"发卡行.卡种名称\", private static final String[] BANKNAME = { \"邮储银行·绿卡通\", \"邮储银行·绿卡银联标准卡\", \"邮储银行·绿卡银联标准卡\", \"邮储银行·绿卡专用卡\", \"邮储银行·绿卡银联标准卡\", \"邮储银行·绿卡(银联卡)\", \"邮储银行·绿卡VIP卡\", \"邮储银行·银联标准卡\", \"邮储银行·中职学生资助卡\", \"邮政储蓄银行·IC绿卡通VIP卡\", \"邮政储蓄银行·IC绿卡通\", \"邮政储蓄银行·IC联名卡\", \"邮政储蓄银行·IC预付费卡\", \"邮储银行·绿卡银联标准卡\", \"邮储银行·绿卡通\", \"邮政储蓄银行·武警军人保障卡\", \"邮政储蓄银行·中国旅游卡(金卡)\", \"邮政储蓄银行·普通高中学生资助卡\", \"邮政储蓄银行·中国旅游卡(普卡)\", \"邮政储蓄银行·福农卡\", \"工商银行·牡丹运通卡金卡\", \"工商银行·牡丹运通卡金卡\", \"工商银行·牡丹运通卡金卡\", \"工商银行·牡丹VISA卡(单位卡)\", \"工商银行·牡丹VISA信用卡\", \"工商银行·牡丹VISA卡(单位卡)\", \"工商银行·牡丹VISA信用卡\", \"工商银行·牡丹VISA信用卡\", \"工商银行·牡丹VISA信用卡\", \"工商银行·牡丹VISA信用卡\", \"工商银行·牡丹运通卡普通卡\", \"工商银行·牡丹VISA信用卡\", \"工商银行·牡丹VISA白金卡\", \"工商银行·牡丹贷记卡(银联卡)\", \"工商银行·牡丹贷记卡(银联卡)\", \"工商银行·牡丹贷记卡(银联卡)\", \"工商银行·牡丹贷记卡(银联卡)\", \"工商银行·牡丹欧元卡\", \"工商银行·牡丹欧元卡\", \"工商银行·牡丹欧元卡\", \"工商银行·牡丹万事达国际借记卡\", \"工商银行·牡丹VISA信用卡\", \"工商银行·海航信用卡\", \"工商银行·牡丹VISA信用卡\", \"工商银行·牡丹万事达信用卡\", \"工商银行·牡丹万事达信用卡\", \"工商银行·牡丹万事达信用卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹万事达白金卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·海航信用卡个人普卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·E时代卡\", \"工商银行·E时代卡\", \"工商银行·理财金卡\", \"工商银行·准贷记卡(个普)\", \"工商银行·准贷记卡(个普)\", \"工商银行·准贷记卡(个普)\", \"工商银行·准贷记卡(个普)\", \"工商银行·准贷记卡(个普)\", \"工商银行·牡丹灵通卡\", \"工商银行·准贷记卡(商普)\", \"工商银行·牡丹卡(商务卡)\", \"工商银行·准贷记卡(商金)\", \"工商银行·牡丹卡(商务卡)\", \"工商银行·贷记卡(个普)\", \"工商银行·牡丹卡(个人卡)\", \"工商银行·牡丹卡(个人卡)\", \"工商银行·牡丹卡(个人卡)\", \"工商银行·牡丹卡(个人卡)\", \"工商银行·贷记卡(个金)\", \"工商银行·牡丹交通卡\", \"工商银行·准贷记卡(个金)\", \"工商银行·牡丹交通卡\", \"工商银行·贷记卡(商普)\", \"工商银行·贷记卡(商金)\", \"工商银行·牡丹卡(商务卡)\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹交通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹灵通卡\", \"工商银行·牡丹贷记卡\", \"工商银行·牡丹贷记卡\", \"工商银行·牡丹贷记卡\", \"工商银行·牡丹贷记卡\", \"工商银行·牡丹灵通卡\", \"工商银行·中央预算单位公务卡\", \"工商银行·牡丹灵通卡\", \"工商银行·财政预算单位公务卡\", \"工商银行·牡丹卡白金卡\", \"工商银行·牡丹卡普卡\", \"工商银行·国航知音牡丹信用卡\", \"工商银行·国航知音牡丹信用卡\", \"工商银行·国航知音牡丹信用卡\", \"工商银行·国航知音牡丹信用卡\", \"工商银行·银联标准卡\", \"工商银行·中职学生资助卡\", \"工商银行·专用信用消费卡\", \"工商银行·牡丹社会保障卡\", \"中国工商银行·牡丹东航联名卡\", \"中国工商银行·牡丹东航联名卡\", \"中国工商银行·牡丹运通白金卡\", \"中国工商银行·福农灵通卡\", \"中国工商银行·福农灵通卡\", \"工商银行·灵通卡\", \"工商银行·灵通卡\", \"中国工商银行·中国旅行卡\", \"工商银行·牡丹卡普卡\", \"工商银行·国际借记卡\", \"工商银行·国际借记卡\", \"工商银行·国际借记卡\", \"工商银行·国际借记卡\", \"中国工商银行·牡丹JCB信用卡\", \"中国工商银行·牡丹JCB信用卡\", \"中国工商银行·牡丹JCB信用卡\", \"中国工商银行·牡丹JCB信用卡\", \"中国工商银行·牡丹多币种卡\", \"中国工商银行·武警军人保障卡\", \"工商银行·预付芯片卡\", \"工商银行·理财金账户金卡\", \"工商银行·灵通卡\", \"工商银行·牡丹宁波市民卡\", \"中国工商银行·中国旅游卡\", \"中国工商银行·中国旅游卡\", \"中国工商银行·中国旅游卡\", \"中国工商银行·借记卡\", \"中国工商银行·借贷合一卡\", \"中国工商银行·普通高中学生资助卡\", \"中国工商银行·牡丹多币种卡\", \"中国工商银行·牡丹多币种卡\", \"中国工商银行·牡丹百夫长信用卡\", \"中国工商银行·牡丹百夫长信用卡\", \"工商银行·工银财富卡\", \"中国工商银行·中小商户采购卡\", \"中国工商银行·中小商户采购卡\", \"中国工商银行·环球旅行金卡\", \"中国工商银行·环球旅行白金卡\", \"中国工商银行·牡丹工银大来卡\", \"中国工商银行·牡丹工银大莱卡\", \"中国工商银行·IC金卡\", \"中国工商银行·IC白金卡\", \"中国工商银行·工行IC卡(红卡)\", \"中国工商银行布鲁塞尔分行·借记卡\", \"中国工商银行布鲁塞尔分行·预付卡\", \"中国工商银行布鲁塞尔分行·预付卡\", \"中国工商银行金边分行·借记卡\", \"中国工商银行金边分行·信用卡\", \"中国工商银行金边分行·借记卡\", \"中国工商银行金边分行·信用卡\", \"中国工商银行加拿大分行·借记卡\", \"中国工商银行加拿大分行·借记卡\", \"中国工商银行加拿大分行·预付卡\", \"中国工商银行巴黎分行·借记卡\", \"中国工商银行巴黎分行·借记卡\", \"中国工商银行巴黎分行·贷记卡\", \"中国工商银行法兰克福分行·贷记卡\", \"中国工商银行法兰克福分行·借记卡\", \"中国工商银行法兰克福分行·贷记卡\", \"中国工商银行法兰克福分行·贷记卡\", \"中国工商银行法兰克福分行·借记卡\", \"中国工商银行法兰克福分行·预付卡\", \"中国工商银行法兰克福分行·预付卡\", \"中国工商银行印尼分行·借记卡\", \"中国工商银行印尼分行·信用卡\", \"中国工商银行米兰分行·借记卡\", \"中国工商银行米兰分行·预付卡\", \"中国工商银行米兰分行·预付卡\", \"中国工商银行阿拉木图子行·借记卡\", \"中国工商银行阿拉木图子行·贷记卡\", \"中国工商银行阿拉木图子行·借记卡\", \"中国工商银行阿拉木图子行·预付卡\", \"中国工商银行万象分行·借记卡\", \"中国工商银行万象分行·贷记卡\", \"中国工商银行卢森堡分行·借记卡\", \"中国工商银行卢森堡分行·贷记卡\", \"中国工商银行澳门分行·E时代卡\", \"中国工商银行澳门分行·E时代卡\", \"中国工商银行澳门分行·E时代卡\", \"中国工商银行澳门分行·理财金账户\", \"中国工商银行澳门分行·理财金账户\", \"中国工商银行澳门分行·理财金账户\", \"中国工商银行澳门分行·预付卡\", \"中国工商银行澳门分行·预付卡\", \"中国工商银行澳门分行·工银闪付预付卡\", \"中国工商银行澳门分行·工银银联公司卡\", \"中国工商银行澳门分行·Diamond\", \"中国工商银行阿姆斯特丹·借记卡\", \"中国工商银行卡拉奇分行·借记卡\", \"中国工商银行卡拉奇分行·贷记卡\", \"中国工商银行新加坡分行·贷记卡\", \"中国工商银行新加坡分行·贷记卡\", \"中国工商银行新加坡分行·借记卡\", \"中国工商银行新加坡分行·预付卡\", \"中国工商银行新加坡分行·预付卡\", \"中国工商银行新加坡分行·借记卡\", \"中国工商银行新加坡分行·借记卡\", \"中国工商银行马德里分行·借记卡\", \"中国工商银行马德里分行·借记卡\", \"中国工商银行马德里分行·预付卡\", \"中国工商银行马德里分行·预付卡\", \"中国工商银行伦敦子行·借记卡\", \"中国工商银行伦敦子行·工银伦敦借记卡\", \"中国工商银行伦敦子行·借记卡\", \"农业银行·金穗贷记卡\", \"农业银行·中国旅游卡\", \"农业银行·普通高中学生资助卡\", \"农业银行·银联标准卡\", \"农业银行·金穗贷记卡(银联卡)\", \"农业银行·金穗贷记卡(银联卡)\", \"农业银行·金穗贷记卡(银联卡)\", \"农业银行·金穗贷记卡(银联卡)\", \"农业银行·金穗贷记卡(银联卡)\", \"农业银行·金穗贷记卡(银联卡)\", \"农业银行·VISA白金卡\", \"农业银行·万事达白金卡\", \"农业银行·金穗贷记卡(银联卡)\", \"农业银行·金穗贷记卡(银联卡)\", \"农业银行·金穗贷记卡(银联卡)\", \"农业银行·金穗贷记卡(银联卡)\", \"农业银行·金穗贷记卡\", \"农业银行·中职学生资助卡\", \"农业银行·专用惠农卡\", \"农业银行·武警军人保障卡\", \"农业银行·金穗校园卡(银联卡)\", \"农业银行·金穗星座卡(银联卡)\", \"农业银行·金穗社保卡(银联卡)\", \"农业银行·金穗旅游卡(银联卡)\", \"农业银行·金穗青年卡(银联卡)\", \"农业银行·复合介质金穗通宝卡\", \"农业银行·金穗海通卡\", \"农业银行·退役金卡\", \"农业银行·金穗贷记卡\", \"农业银行·金穗贷记卡\", \"农业银行·金穗通宝卡(银联卡)\", \"农业银行·金穗惠农卡\", \"农业银行·金穗通宝银卡\", \"农业银行·金穗通宝卡(银联卡)\", \"农业银行·金穗通宝卡(银联卡)\", \"农业银行·金穗通宝卡\", \"农业银行·金穗通宝卡(银联卡)\", \"农业银行·金穗通宝卡(银联卡)\", \"农业银行·金穗通宝钻石卡\", \"农业银行·掌尚钱包\", \"农业银行·银联IC卡金卡\", \"农业银行·银联预算单位公务卡金卡\", \"农业银行·银联IC卡白金卡\", \"农业银行·金穗公务卡\", \"中国农业银行贷记卡·IC普卡\", \"中国农业银行贷记卡·IC金卡\", \"中国农业银行贷记卡·澳元卡\", \"中国农业银行贷记卡·欧元卡\", \"中国农业银行贷记卡·金穗通商卡\", \"中国农业银行贷记卡·金穗通商卡\", \"中国农业银行贷记卡·银联白金卡\", \"中国农业银行贷记卡·中国旅游卡\", \"中国农业银行贷记卡·银联IC公务卡\", \"宁波市农业银行·市民卡B卡\", \"中国银行·联名卡\", \"中国银行·个人普卡\", \"中国银行·个人金卡\", \"中国银行·员工普卡\", \"中国银行·员工金卡\", \"中国银行·理财普卡\", \"中国银行·理财金卡\", \"中国银行·理财银卡\", \"中国银行·理财白金卡\", \"中国银行·中行金融IC卡白金卡\", \"中国银行·中行金融IC卡普卡\", \"中国银行·中行金融IC卡金卡\", \"中国银行·中银JCB卡金卡\", \"中国银行·中银JCB卡普卡\", \"中国银行·员工普卡\", \"中国银行·个人普卡\", \"中国银行·中银威士信用卡员\", \"中国银行·中银威士信用卡员\", \"中国银行·个人白金卡\", \"中国银行·中银威士信用卡\", \"中国银行·长城公务卡\", \"中国银行·长城电子借记卡\", \"中国银行·中银万事达信用卡\", \"中国银行·中银万事达信用卡\", \"中国银行·中银万事达信用卡\", \"中国银行·中银万事达信用卡\", \"中国银行·中银万事达信用卡\", \"中国银行·中银威士信用卡员\", \"中国银行·长城万事达信用卡\", \"中国银行·长城万事达信用卡\", \"中国银行·长城万事达信用卡\", \"中国银行·长城万事达信用卡\", \"中国银行·长城万事达信用卡\", \"中国银行·中银奥运信用卡\", \"中国银行·长城信用卡\", \"中国银行·长城信用卡\", \"中国银行·长城信用卡\", \"中国银行·长城万事达信用卡\", \"中国银行·长城公务卡\", \"中国银行·长城公务卡\", \"中国银行·中银万事达信用卡\", \"中国银行·中银万事达信用卡\", \"中国银行·长城人民币信用卡\", \"中国银行·长城人民币信用卡\", \"中国银行·长城人民币信用卡\", \"中国银行·长城信用卡\", \"中国银行·长城人民币信用卡\", \"中国银行·长城人民币信用卡\", \"中国银行·长城信用卡\", \"中国银行·银联单币贷记卡\", \"中国银行·长城信用卡\", \"中国银行·长城信用卡\", \"中国银行·长城信用卡\", \"中国银行·长城电子借记卡\", \"中国银行·长城人民币信用卡\", \"中国银行·银联标准公务卡\", \"中国银行·一卡双账户普卡\", \"中国银行·财互通卡\", \"中国银行·电子现金卡\", \"中国银行·长城人民币信用卡\", \"中国银行·长城单位信用卡普卡\", \"中国银行·中银女性主题信用卡\", \"中国银行·长城单位信用卡金卡\", \"中国银行·白金卡\", \"中国银行·中职学生资助卡\", \"中国银行·银联标准卡\", \"中国银行·金融IC卡\", \"中国银行·长城社会保障卡\", \"中国银行·世界卡\", \"中国银行·社保联名卡\", \"中国银行·社保联名卡\", \"中国银行·医保联名卡\", \"中国银行·医保联名卡\", \"中国银行·公司借记卡\", \"中国银行·银联美运顶级卡\", \"中国银行·长城福农借记卡金卡\", \"中国银行·长城福农借记卡普卡\", \"中国银行·中行金融IC卡普卡\", \"中国银行·中行金融IC卡金卡\", \"中国银行·中行金融IC卡白金卡\", \"中国银行·长城银联公务IC卡白金卡\", \"中国银行·中银旅游信用卡\", \"中国银行·长城银联公务IC卡金卡\", \"中国银行·中国旅游卡\", \"中国银行·武警军人保障卡\", \"中国银行·社保联名借记IC卡\", \"中国银行·社保联名借记IC卡\", \"中国银行·医保联名借记IC卡\", \"中国银行·医保联名借记IC卡\", \"中国银行·借记IC个人普卡\", \"中国银行·借记IC个人金卡\", \"中国银行·借记IC个人普卡\", \"中国银行·借记IC白金卡\", \"中国银行·借记IC钻石卡\", \"中国银行·借记IC联名卡\", \"中国银行·普通高中学生资助卡\", \"中国银行·长城环球通港澳台旅游金卡\", \"中国银行·长城环球通港澳台旅游白金卡\", \"中国银行·中银福农信用卡\", \"中国银行金边分行·借记卡\", \"中国银行雅加达分行·借记卡\", \"中国银行首尔分行·借记卡\", \"中国银行澳门分行·人民币信用卡\", \"中国银行澳门分行·人民币信用卡\", \"中国银行澳门分行·中银卡\", \"中国银行澳门分行·中银卡\", \"中国银行澳门分行·中银卡\", \"中国银行澳门分行·中银银联双币商务卡\", \"中国银行澳门分行·预付卡\", \"中国银行澳门分行·澳门中国银行银联预付卡\", \"中国银行澳门分行·澳门中国银行银联预付卡\", \"中国银行澳门分行·熊猫卡\", \"中国银行澳门分行·财富卡\", \"中国银行澳门分行·银联港币卡\", \"中国银行澳门分行·银联澳门币卡\", \"中国银行马尼拉分行·双币种借记卡\", \"中国银行胡志明分行·借记卡\", \"中国银行曼谷分行·借记卡\", \"中国银行曼谷分行·长城信用卡环球通\", \"中国银行曼谷分行·借记卡\", \"建设银行·龙卡准贷记卡\", \"建设银行·龙卡准贷记卡金卡\", \"建设银行·中职学生资助卡\", \"建设银行·乐当家银卡VISA\", \"建设银行·乐当家金卡VISA\", \"建设银行·乐当家白金卡\", \"建设银行·龙卡普通卡VISA\", \"建设银行·龙卡储蓄卡\", \"建设银行·VISA准贷记卡(银联卡)\", \"建设银行·VISA准贷记金卡\", \"建设银行·乐当家\", \"建设银行·乐当家\", \"建设银行·准贷记金卡\", \"建设银行·乐当家白金卡\", \"建设银行·金融复合IC卡\", \"建设银行·银联标准卡\", \"建设银行·银联理财钻石卡\", \"建设银行·金融IC卡\", \"建设银行·理财白金卡\", \"建设银行·社保IC卡\", \"建设银行·财富卡私人银行卡\", \"建设银行·理财金卡\", \"建设银行·福农卡\", \"建设银行·武警军人保障卡\", \"建设银行·龙卡通\", \"建设银行·银联储蓄卡\", \"建设银行·龙卡储蓄卡(银联卡)\", \"建设银行·准贷记卡\", \"建设银行·理财白金卡\", \"建设银行·理财金卡\", \"建设银行·准贷记卡普卡\", \"建设银行·准贷记卡金卡\", \"建设银行·龙卡信用卡\", \"建设银行·建行陆港通龙卡\", \"中国建设银行·普通高中学生资助卡\", \"中国建设银行·中国旅游卡\", \"中国建设银行·龙卡JCB金卡\", \"中国建设银行·龙卡JCB白金卡\", \"中国建设银行·龙卡JCB普卡\", \"中国建设银行·龙卡贷记卡公司卡\", \"中国建设银行·龙卡贷记卡\", \"中国建设银行·龙卡国际普通卡VISA\", \"中国建设银行·龙卡国际金卡VISA\", \"中国建设银行·VISA白金信用卡\", \"中国建设银行·龙卡国际白金卡\", \"中国建设银行·龙卡国际普通卡MASTER\", \"中国建设银行·龙卡国际金卡MASTER\", \"中国建设银行·龙卡万事达金卡\", \"中国建设银行·龙卡贷记卡\", \"中国建设银行·龙卡万事达白金卡\", \"中国建设银行·龙卡贷记卡\", \"中国建设银行·龙卡万事达信用卡\", \"中国建设银行·龙卡人民币信用卡\", \"中国建设银行·龙卡人民币信用金卡\", \"中国建设银行·龙卡人民币白金卡\", \"中国建设银行·龙卡IC信用卡普卡\", \"中国建设银行·龙卡IC信用卡金卡\", \"中国建设银行·龙卡IC信用卡白金卡\", \"中国建设银行·龙卡银联公务卡普卡\", \"中国建设银行·龙卡银联公务卡金卡\", \"中国建设银行·中国旅游卡\", \"中国建设银行·中国旅游卡\", \"中国建设银行·龙卡IC公务卡\", \"中国建设银行·龙卡IC公务卡\", \"交通银行·交行预付卡\", \"交通银行·世博预付IC卡\", \"交通银行·太平洋互连卡\", \"交通银行·太平洋万事顺卡\", \"交通银行·太平洋互连卡(银联卡)\", \"交通银行·太平洋白金信用卡\", \"交通银行·太平洋双币贷记卡\", \"交通银行·太平洋双币贷记卡\", \"交通银行·太平洋双币贷记卡\", \"交通银行·太平洋白金信用卡\", \"交通银行·太平洋双币贷记卡\", \"交通银行·太平洋万事顺卡\", \"交通银行·太平洋人民币贷记卡\", \"交通银行·太平洋人民币贷记卡\", \"交通银行·太平洋双币贷记卡\", \"交通银行·太平洋准贷记卡\", \"交通银行·太平洋准贷记卡\", \"交通银行·太平洋准贷记卡\", \"交通银行·太平洋准贷记卡\", \"交通银行·太平洋借记卡\", \"交通银行·太平洋借记卡\", \"交通银行·太平洋人民币贷记卡\", \"交通银行·太平洋借记卡\", \"交通银行·太平洋MORE卡\", \"交通银行·白金卡\", \"交通银行·交通银行公务卡普卡\", \"交通银行·太平洋人民币贷记卡\", \"交通银行·太平洋互连卡\", \"交通银行·太平洋借记卡\", \"交通银行·太平洋万事顺卡\", \"交通银行·太平洋贷记卡(银联卡)\", \"交通银行·太平洋贷记卡(银联卡)\", \"交通银行·太平洋贷记卡(银联卡)\", \"交通银行·太平洋贷记卡(银联卡)\", \"交通银行·交通银行公务卡金卡\", \"交通银行·交银IC卡\", \"交通银行香港分行·交通银行港币借记卡\", \"交通银行香港分行·港币礼物卡\", \"交通银行香港分行·双币种信用卡\", \"交通银行香港分行·双币种信用卡\", \"交通银行香港分行·双币卡\", \"交通银行香港分行·银联人民币卡\", \"交通银行澳门分行·银联借记卡\", \"中信银行·中信借记卡\", \"中信银行·中信借记卡\", \"中信银行·中信国际借记卡\", \"中信银行·中信国际借记卡\", \"中信银行·中国旅行卡\", \"中信银行·中信借记卡(银联卡)\", \"中信银行·中信借记卡(银联卡)\", \"中信银行·中信贵宾卡(银联卡)\", \"中信银行·中信理财宝金卡\", \"中信银行·中信理财宝白金卡\", \"中信银行·中信钻石卡\", \"中信银行·中信钻石卡\", \"中信银行·中信借记卡\", \"中信银行·中信理财宝(银联卡)\", \"中信银行·中信理财宝(银联卡)\", \"中信银行·中信理财宝(银联卡)\", \"中信银行·借记卡\", \"中信银行·理财宝IC卡\", \"中信银行·理财宝IC卡\", \"中信银行·理财宝IC卡\", \"中信银行·理财宝IC卡\", \"中信银行·理财宝IC卡\", \"中信银行·主账户复合电子现金卡\", \"光大银行·阳光商旅信用卡\", \"光大银行·阳光商旅信用卡\", \"光大银行·阳光商旅信用卡\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·阳光卡(银联卡)\", \"光大银行·借记卡普卡\", \"光大银行·社会保障IC卡\", \"光大银行·IC借记卡普卡\", \"光大银行·手机支付卡\", \"光大银行·联名IC卡普卡\", \"光大银行·借记IC卡白金卡\", \"光大银行·借记IC卡金卡\", \"光大银行·阳光旅行卡\", \"光大银行·借记IC卡钻石卡\", \"光大银行·联名IC卡金卡\", \"光大银行·联名IC卡白金卡\", \"光大银行·联名IC卡钻石卡\", \"华夏银行·华夏卡(银联卡)\", \"华夏银行·华夏白金卡\", \"华夏银行·华夏普卡\", \"华夏银行·华夏金卡\", \"华夏银行·华夏白金卡\", \"华夏银行·华夏钻石卡\", \"华夏银行·华夏卡(银联卡)\", \"华夏银行·华夏至尊金卡(银联卡)\", \"华夏银行·华夏丽人卡(银联卡)\", \"华夏银行·华夏万通卡\", \"民生银行·民生借记卡(银联卡)\", \"民生银行·民生银联借记卡-金卡\", \"民生银行·钻石卡\", \"民生银行·民生借记卡(银联卡)\", \"民生银行·民生借记卡(银联卡)\", \"民生银行·民生借记卡(银联卡)\", \"民生银行·民生借记卡\", \"民生银行·民生国际卡\", \"民生银行·民生国际卡(银卡)\", \"民生银行·民生国际卡(欧元卡)\", \"民生银行·民生国际卡(澳元卡)\", \"民生银行·民生国际卡\", \"民生银行·民生国际卡\", \"民生银行·薪资理财卡\", \"民生银行·借记卡普卡\", \"民生银行·民生MasterCard\", \"民生银行·民生MasterCard\", \"民生银行·民生MasterCard\", \"民生银行·民生MasterCard\", \"民生银行·民生JCB信用卡\", \"民生银行·民生JCB金卡\", \"民生银行·民生贷记卡(银联卡)\", \"民生银行·民生贷记卡(银联卡)\", \"民生银行·民生贷记卡(银联卡)\", \"民生银行·民生贷记卡(银联卡)\", \"民生银行·民生贷记卡(银联卡)\", \"民生银行·民生JCB普卡\", \"民生银行·民生贷记卡(银联卡)\", \"民生银行·民生贷记卡(银联卡)\", \"民生银行·民生信用卡(银联卡)\", \"民生银行·民生信用卡(银联卡)\", \"民生银行·民生银联白金信用卡\", \"民生银行·民生贷记卡(银联卡)\", \"民生银行·民生银联个人白金卡\", \"民生银行·公务卡金卡\", \"民生银行·民生贷记卡(银联卡)\", \"民生银行·民生银联商务信用卡\", \"民生银行·民VISA无限卡\", \"民生银行·民生VISA商务白金卡\", \"民生银行·民生万事达钛金卡\", \"民生银行·民生万事达世界卡\", \"民生银行·民生万事达白金公务卡\", \"民生银行·民生JCB白金卡\", \"民生银行·银联标准金卡\", \"民生银行·银联芯片普卡\", \"民生银行·民生运通双币信用卡普卡\", \"民生银行·民生运通双币信用卡金卡\", \"民生银行·民生运通双币信用卡钻石卡\", \"民生银行·民生运通双币标准信用卡白金卡\", \"民生银行·银联芯片金卡\", \"民生银行·银联芯片白金卡\", \"招商银行·招商银行信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·两地一卡通\", \"招商银行·招行国际卡(银联卡)\", \"招商银行·招商银行信用卡\", \"招商银行·VISA商务信用卡\", \"招商银行·招行国际卡(银联卡)\", \"招商银行·招商银行信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·招行国际卡(银联卡)\", \"招商银行·世纪金花联名信用卡\", \"招商银行·招行国际卡(银联卡)\", \"招商银行·招商银行信用卡\", \"招商银行·万事达信用卡\", \"招商银行·万事达信用卡\", \"招商银行·万事达信用卡\", \"招商银行·万事达信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·一卡通(银联卡)\", \"招商银行·万事达信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·招商银行信用卡\", \"招商银行·一卡通(银联卡)\", \"招商银行·公司卡(银联卡)\", \"招商银行·金卡\", \"招商银行·招行一卡通\", \"招商银行·招行一卡通\", \"招商银行·万事达信用卡\", \"招商银行·金葵花卡\", \"招商银行·电子现金卡\", \"招商银行·银联IC普卡\", \"招商银行·银联IC金卡\", \"招商银行·银联金葵花IC卡\", \"招商银行·IC公务卡\", \"招商银行·招商银行信用卡\", \"招商银行信用卡中心·美国运通绿卡\", \"招商银行信用卡中心·美国运通金卡\", \"招商银行信用卡中心·美国运通商务绿卡\", \"招商银行信用卡中心·美国运通商务金卡\", \"招商银行信用卡中心·VISA信用卡\", \"招商银行信用卡中心·MASTER信用卡\", \"招商银行信用卡中心·MASTER信用金卡\", \"招商银行信用卡中心·银联标准公务卡(金卡)\", \"招商银行信用卡中心·VISA信用卡\", \"招商银行信用卡中心·银联标准财政公务卡\", \"招商银行信用卡中心·芯片IC信用卡\", \"招商银行信用卡中心·芯片IC信用卡\", \"招商银行香港分行·香港一卡通\", \"兴业银行·兴业卡(银联卡)\", \"兴业银行·兴业卡(银联标准卡)\", \"兴业银行·兴业自然人生理财卡\", \"兴业银行·兴业智能卡(银联卡)\", \"兴业银行·兴业智能卡\", \"兴业银行·visa标准双币个人普卡\", \"兴业银行·VISA商务普卡\", \"兴业银行·VISA商务金卡\", \"兴业银行·VISA运动白金信用卡\", \"兴业银行·万事达信用卡(银联卡)\", \"兴业银行·VISA信用卡(银联卡)\", \"兴业银行·加菲猫信用卡\", \"兴业银行·个人白金卡\", \"兴业银行·银联信用卡(银联卡)\", \"兴业银行·银联信用卡(银联卡)\", \"兴业银行·银联白金信用卡\", \"兴业银行·银联标准公务卡\", \"兴业银行·VISA信用卡(银联卡)\", \"兴业银行·万事达信用卡(银联卡)\", \"兴业银行·银联标准贷记普卡\", \"兴业银行·银联标准贷记金卡\", \"兴业银行·银联标准贷记金卡\", \"兴业银行·银联标准贷记金卡\", \"兴业银行·兴业信用卡\", \"兴业银行·兴业信用卡\", \"兴业银行·兴业信用卡\", \"兴业银行·银联标准贷记普卡\", \"兴业银行·银联标准贷记普卡\", \"兴业银行·兴业芯片普卡\", \"兴业银行·兴业芯片金卡\", \"兴业银行·兴业芯片白金卡\", \"兴业银行·兴业芯片钻石卡\", \"浦东发展银行·浦发JCB金卡\", \"浦东发展银行·浦发JCB白金卡\", \"浦东发展银行·信用卡VISA普通\", \"浦东发展银行·信用卡VISA金卡\", \"浦东发展银行·浦发银行VISA年青卡\", \"浦东发展银行·VISA白金信用卡\", \"浦东发展银行·浦发万事达白金卡\", \"浦东发展银行·浦发JCB普卡\", \"浦东发展银行·浦发万事达金卡\", \"浦东发展银行·浦发万事达普卡\", \"浦东发展银行·浦发单币卡\", \"浦东发展银行·浦发银联单币麦兜普卡\", \"浦东发展银行·东方轻松理财卡\", \"浦东发展银行·东方-轻松理财卡普卡\", \"浦东发展银行·东方轻松理财卡\", \"浦东发展银行·东方轻松理财智业金卡\", \"浦东发展银行·东方卡(银联卡)\", \"浦东发展银行·东方卡(银联卡)\", \"浦东发展银行·东方卡(银联卡)\", \"浦东发展银行·公务卡金卡\", \"浦东发展银行·公务卡普卡\", \"浦东发展银行·东方卡\", \"浦东发展银行·东方卡\", \"浦东发展银行·浦发单币卡\", \"浦东发展银行·浦发联名信用卡\", \"浦东发展银行·浦发银联白金卡\", \"浦东发展银行·轻松理财普卡\", \"浦东发展银行·移动联名卡\", \"浦东发展银行·轻松理财消贷易卡\", \"浦东发展银行·轻松理财普卡(复合卡)\", \"浦东发展银行·贷记卡\", \"浦东发展银行·贷记卡\", \"浦东发展银行·东方借记卡(复合卡)\", \"浦东发展银行·电子现金卡(IC卡)\", \"浦东发展银行·移动浦发联名卡\", \"浦东发展银行·东方-标准准贷记卡\", \"浦东发展银行·轻松理财金卡(复合卡)\", \"浦东发展银行·轻松理财白金卡(复合卡)\", \"浦东发展银行·轻松理财钻石卡(复合卡)\", \"浦东发展银行·东方卡\", \"恒丰银行·九州IC卡\", \"恒丰银行·九州借记卡(银联卡)\", \"恒丰银行·九州借记卡(银联卡)\", \"天津市商业银行·银联卡(银联卡)\", \"烟台商业银行·金通卡\", \"潍坊银行·鸢都卡(银联卡)\", \"潍坊银行·鸳都卡(银联卡)\", \"临沂商业银行·沂蒙卡(银联卡)\", \"临沂商业银行·沂蒙卡(银联卡)\", \"日照市商业银行·黄海卡\", \"日照市商业银行·黄海卡(银联卡)\", \"浙商银行·商卡\", \"浙商银行·商卡\", \"渤海银行·浩瀚金卡\", \"渤海银行·渤海银行借记卡\", \"渤海银行·金融IC卡\", \"渤海银行·渤海银行公司借记卡\", \"星展银行·星展银行借记卡\", \"星展银行·星展银行借记卡\", \"恒生银行·恒生通财卡\", \"恒生银行·恒生优越通财卡\", \"新韩银行·新韩卡\", \"上海银行·慧通钻石卡\", \"上海银行·慧通金卡\", \"上海银行·私人银行卡\", \"上海银行·综合保险卡\", \"上海银行·申卡社保副卡(有折)\", \"上海银行·申卡社保副卡(无折)\", \"上海银行·白金IC借记卡\", \"上海银行·慧通白金卡(配折)\", \"上海银行·慧通白金卡(不配折)\", \"上海银行·申卡(银联卡)\", \"上海银行·申卡借记卡\", \"上海银行·银联申卡(银联卡)\", \"上海银行·单位借记卡\", \"上海银行·首发纪念版IC卡\", \"上海银行·申卡贷记卡\", \"上海银行·申卡贷记卡\", \"上海银行·J分期付款信用卡\", \"上海银行·申卡贷记卡\", \"上海银行·申卡贷记卡\", \"上海银行·上海申卡IC\", \"上海银行·申卡贷记卡\", \"上海银行·申卡贷记卡普通卡\", \"上海银行·申卡贷记卡金卡\", \"上海银行·万事达白金卡\", \"上海银行·万事达星运卡\", \"上海银行·申卡贷记卡金卡\", \"上海银行·申卡贷记卡普通卡\", \"上海银行·安融卡\", \"上海银行·分期付款信用卡\", \"上海银行·信用卡\", \"上海银行·个人公务卡\", \"上海银行·安融卡\", \"上海银行·上海银行银联白金卡\", \"上海银行·贷记IC卡\", \"上海银行·中国旅游卡(IC普卡)\", \"上海银行·中国旅游卡(IC金卡)\", \"上海银行·中国旅游卡(IC白金卡)\", \"上海银行·万事达钻石卡\", \"上海银行·淘宝IC普卡\", \"北京银行·京卡借记卡\", \"北京银行·京卡(银联卡)\", \"北京银行·京卡借记卡\", \"北京银行·京卡\", \"北京银行·京卡\", \"北京银行·借记IC卡\", \"北京银行·京卡贵宾金卡\", \"北京银行·京卡贵宾白金卡\", \"吉林银行·君子兰一卡通(银联卡)\", \"吉林银行·君子兰卡(银联卡)\", \"吉林银行·长白山金融IC卡\", \"吉林银行·信用卡\", \"吉林银行·信用卡\", \"吉林银行·公务卡\", \"镇江市商业银行·金山灵通卡(银联卡)\", \"镇江市商业银行·金山灵通卡(银联卡)\", \"宁波银行·银联标准卡\", \"宁波银行·汇通借记卡\", \"宁波银行·汇通卡(银联卡)\", \"宁波银行·明州卡\", \"宁波银行·汇通借记卡\", \"宁波银行·汇通国际卡银联双币卡\", \"宁波银行·汇通国际卡银联双币卡\", \"平安银行·新磁条借记卡\", \"平安银行·平安银行IC借记卡\", \"平安银行·万事顺卡\", \"平安银行·平安银行借记卡\", \"平安银行·平安银行借记卡\", \"平安银行·万事顺借记卡\", \"焦作市商业银行·月季借记卡(银联卡)\", \"焦作市商业银行·月季城市通(银联卡)\", \"焦作市商业银行·中国旅游卡\", \"温州银行·金鹿卡\", \"汉口银行·九通卡(银联卡)\", \"汉口银行·九通卡\", \"汉口银行·借记卡\", \"汉口银行·借记卡\", \"盛京银行·玫瑰卡\", \"盛京银行·玫瑰IC卡\", \"盛京银行·玫瑰IC卡\", \"盛京银行·玫瑰卡\", \"盛京银行·玫瑰卡\", \"盛京银行·玫瑰卡(银联卡)\", \"盛京银行·玫瑰卡(银联卡)\", \"盛京银行·盛京银行公务卡\", \"洛阳银行·都市一卡通(银联卡)\", \"洛阳银行·都市一卡通(银联卡)\", \"洛阳银行·--\", \"大连银行·北方明珠卡\", \"大连银行·人民币借记卡\", \"大连银行·金融IC借记卡\", \"大连银行·大连市社会保障卡\", \"大连银行·借记IC卡\", \"大连银行·借记IC卡\", \"大连银行·大连市商业银行贷记卡\", \"大连银行·大连市商业银行贷记卡\", \"大连银行·银联标准公务卡\", \"苏州市商业银行·姑苏卡\", \"杭州商业银行·西湖卡\", \"杭州商业银行·西湖卡\", \"杭州商业银行·借记IC卡\", \"杭州商业银行·\", \"南京银行·梅花信用卡公务卡\", \"南京银行·梅花信用卡商务卡\", \"南京银行·梅花贷记卡(银联卡)\", \"南京银行·梅花借记卡(银联卡)\", \"南京银行·白金卡\", \"南京银行·商务卡\", \"东莞市商业银行·万顺通卡(银联卡)\", \"东莞市商业银行·万顺通卡(银联卡)\", \"东莞市商业银行·万顺通借记卡\", \"东莞市商业银行·社会保障卡\", \"乌鲁木齐市商业银行·雪莲借记IC卡\", \"乌鲁木齐市商业银行·乌鲁木齐市公务卡\", \"乌鲁木齐市商业银行·福农卡贷记卡\", \"乌鲁木齐市商业银行·福农卡准贷记卡\", \"乌鲁木齐市商业银行·雪莲准贷记卡\", \"乌鲁木齐市商业银行·雪莲贷记卡(银联卡)\", \"乌鲁木齐市商业银行·雪莲借记IC卡\", \"乌鲁木齐市商业银行·雪莲借记卡(银联卡)\", \"乌鲁木齐市商业银行·雪莲卡(银联卡)\", \"绍兴银行·兰花IC借记卡\", \"绍兴银行·社保IC借记卡\", \"绍兴银行·兰花公务卡\", \"成都商业银行·芙蓉锦程福农卡\", \"成都商业银行·芙蓉锦程天府通卡\", \"成都商业银行·锦程卡(银联卡)\", \"成都商业银行·锦程卡金卡\", \"成都商业银行·锦程卡定活一卡通金卡\", \"成都商业银行·锦程卡定活一卡通\", \"成都商业银行·锦程力诚联名卡\", \"成都商业银行·锦程力诚联名卡\", \"成都商业银行·锦程卡(银联卡)\", \"抚顺银行·借记IC卡\", \"临商银行·借记卡\", \"宜昌市商业银行·三峡卡(银联卡)\", \"宜昌市商业银行·信用卡(银联卡)\", \"葫芦岛市商业银行·一通卡\", \"葫芦岛市商业银行·一卡通(银联卡)\", \"天津市商业银行·津卡\", \"天津市商业银行·津卡贷记卡(银联卡)\", \"天津市商业银行·贷记IC卡\", \"天津市商业银行·--\", \"天津银行·商务卡\", \"宁夏银行·宁夏银行公务卡\", \"宁夏银行·宁夏银行福农贷记卡\", \"宁夏银行·如意卡(银联卡)\", \"宁夏银行·宁夏银行福农借记卡\", \"宁夏银行·如意借记卡\", \"宁夏银行·如意IC卡\", \"宁夏银行·宁夏银行如意借记卡\", \"宁夏银行·中国旅游卡\", \"齐商银行·金达卡(银联卡)\", \"齐商银行·金达借记卡(银联卡)\", \"齐商银行·金达IC卡\", \"徽商银行·黄山卡\", \"徽商银行·黄山卡\", \"徽商银行·借记卡\", \"徽商银行·徽商银行中国旅游卡(安徽)\", \"徽商银行合肥分行·黄山卡\", \"徽商银行芜湖分行·黄山卡(银联卡)\", \"徽商银行马鞍山分行·黄山卡(银联卡)\", \"徽商银行淮北分行·黄山卡(银联卡)\", \"徽商银行安庆分行·黄山卡(银联卡)\", \"重庆银行·长江卡(银联卡)\", \"重庆银行·长江卡(银联卡)\", \"重庆银行·长江卡\", \"重庆银行·借记IC卡\", \"哈尔滨银行·丁香一卡通(银联卡)\", \"哈尔滨银行·丁香借记卡(银联卡)\", \"哈尔滨银行·丁香卡\", \"哈尔滨银行·福农借记卡\", \"无锡市商业银行·太湖金保卡(银联卡)\", \"丹东银行·借记IC卡\", \"丹东银行·丹东银行公务卡\", \"兰州银行·敦煌卡\", \"南昌银行·金瑞卡(银联卡)\", \"南昌银行·南昌银行借记卡\", \"南昌银行·金瑞卡\", \"晋商银行·晋龙一卡通\", \"晋商银行·晋龙一卡通\", \"晋商银行·晋龙卡(银联卡)\", \"青岛银行·金桥通卡\", \"青岛银行·金桥卡(银联卡)\", \"青岛银行·金桥卡(银联卡)\", \"青岛银行·金桥卡\", \"青岛银行·借记IC卡\", \"吉林银行·雾凇卡(银联卡)\", \"吉林银行·雾凇卡(银联卡)\", \"南通商业银行·金桥卡(银联卡)\", \"南通商业银行·金桥卡(银联卡)\", \"日照银行·黄海卡、财富卡借记卡\", \"鞍山银行·千山卡(银联卡)\", \"鞍山银行·千山卡(银联卡)\", \"鞍山银行·千山卡\", \"青海银行·三江银行卡(银联卡)\", \"青海银行·三江卡\", \"台州银行·大唐贷记卡\", \"台州银行·大唐准贷记卡\", \"台州银行·大唐卡(银联卡)\", \"台州银行·大唐卡\", \"台州银行·借记卡\", \"台州银行·公务卡\", \"泉州银行·海峡银联卡(银联卡)\", \"泉州银行·海峡储蓄卡\", \"泉州银行·海峡银联卡(银联卡)\", \"泉州银行·海峡卡\", \"泉州银行·公务卡\", \"昆明商业银行·春城卡(银联卡)\", \"昆明商业银行·春城卡(银联卡)\", \"昆明商业银行·富滇IC卡(复合卡)\", \"阜新银行·借记IC卡\", \"嘉兴银行·南湖借记卡(银联卡)\", \"廊坊银行·白金卡\", \"廊坊银行·金卡\", \"廊坊银行·银星卡(银联卡)\", \"廊坊银行·龙凤呈祥卡\", \"内蒙古银行·百灵卡(银联卡)\", \"内蒙古银行·成吉思汗卡\", \"湖州市商业银行·百合卡\", \"湖州市商业银行·\", \"沧州银行·狮城卡\", \"南宁市商业银行·桂花卡(银联卡)\", \"包商银行·雄鹰卡(银联卡)\", \"包商银行·包头市商业银行借记卡\", \"包商银行·雄鹰贷记卡\", \"包商银行·包商银行内蒙古自治区公务卡\", \"包商银行·贷记卡\", \"包商银行·借记卡\", \"连云港市商业银行·金猴神通借记卡\", \"威海商业银行·通达卡(银联卡)\", \"威海市商业银行·通达借记IC卡\", \"攀枝花市商业银行·攀枝花卡(银联卡)\", \"攀枝花市商业银行·攀枝花卡\", \"绵阳市商业银行·科技城卡(银联卡)\", \"泸州市商业银行·酒城卡(银联卡)\", \"泸州市商业银行·酒城IC卡\", \"大同市商业银行·云冈卡(银联卡)\", \"三门峡银行·天鹅卡(银联卡)\", \"广东南粤银行·南珠卡(银联卡)\", \"张家口市商业银行·好运IC借记卡\", \"桂林市商业银行·漓江卡(银联卡)\", \"龙江银行·福农借记卡\", \"龙江银行·联名借记卡\", \"龙江银行·福农借记卡\", \"龙江银行·龙江IC卡\", \"龙江银行·社会保障卡\", \"龙江银行·--\", \"江苏长江商业银行·长江卡\", \"徐州市商业银行·彭城借记卡(银联卡)\", \"南充市商业银行·借记IC卡\", \"南充市商业银行·熊猫团团卡\", \"莱商银行·银联标准卡\", \"莱芜银行·金凤卡\", \"莱商银行·借记IC卡\", \"德阳银行·锦程卡定活一卡通\", \"德阳银行·锦程卡定活一卡通金卡\", \"德阳银行·锦程卡定活一卡通\", \"唐山市商业银行·唐山市城通卡\", \"曲靖市商业银行·珠江源卡\", \"曲靖市商业银行·珠江源IC卡\", \"温州银行·金鹿信用卡\", \"温州银行·金鹿信用卡\", \"温州银行·金鹿公务卡\", \"温州银行·贷记IC卡\", \"汉口银行·汉口银行贷记卡\", \"汉口银行·汉口银行贷记卡\", \"汉口银行·九通香港旅游贷记普卡\", \"汉口银行·九通香港旅游贷记金卡\", \"汉口银行·贷记卡\", \"汉口银行·九通公务卡\", \"江苏银行·聚宝借记卡\", \"江苏银行·月季卡\", \"江苏银行·紫金卡\", \"江苏银行·绿扬卡(银联卡)\", \"江苏银行·月季卡(银联卡)\", \"江苏银行·九州借记卡(银联卡)\", \"江苏银行·月季卡(银联卡)\", \"江苏银行·聚宝惠民福农卡\", \"江苏银行·江苏银行聚宝IC借记卡\", \"江苏银行·聚宝IC借记卡VIP卡\", \"长治市商业银行·长治商行银联晋龙卡\", \"承德市商业银行·热河卡\", \"承德银行·借记IC卡\", \"德州银行·长河借记卡\", \"德州银行·--\", \"遵义市商业银行·社保卡\", \"遵义市商业银行·尊卡\", \"邯郸市商业银行·邯银卡\", \"邯郸市商业银行·邯郸银行贵宾IC借记卡\", \"安顺市商业银行·黄果树福农卡\", \"安顺市商业银行·黄果树借记卡\", \"江苏银行·紫金信用卡(公务卡)\", \"江苏银行·紫金信用卡\", \"江苏银行·天翼联名信用卡\", \"平凉市商业银行·广成卡\", \"玉溪市商业银行·红塔卡\", \"玉溪市商业银行·红塔卡\", \"浙江民泰商业银行·金融IC卡\", \"浙江民泰商业银行·民泰借记卡\", \"浙江民泰商业银行·金融IC卡C卡\", \"浙江民泰商业银行·银联标准普卡金卡\", \"浙江民泰商业银行·商惠通\", \"上饶市商业银行·三清山卡\", \"东营银行·胜利卡\", \"泰安市商业银行·岱宗卡\", \"泰安市商业银行·市民一卡通\", \"浙江稠州商业银行·义卡\", \"浙江稠州商业银行·义卡借记IC卡\", \"浙江稠州商业银行·公务卡\", \"自贡市商业银行·借记IC卡\", \"自贡市商业银行·锦程卡\", \"鄂尔多斯银行·天骄公务卡\", \"鹤壁银行·鹤卡\", \"许昌银行·连城卡\", \"铁岭银行·龙凤卡\", \"乐山市商业银行·大福卡\", \"乐山市商业银行·--\", \"长安银行·长长卡\", \"长安银行·借记IC卡\", \"重庆三峡银行·财富人生卡\", \"重庆三峡银行·借记卡\", \"石嘴山银行·麒麟借记卡\", \"石嘴山银行·麒麟借记卡\", \"石嘴山银行·麒麟公务卡\", \"盘锦市商业银行·鹤卡\", \"盘锦市商业银行·盘锦市商业银行鹤卡\", \"平顶山银行·平顶山银行公务卡\", \"朝阳银行·鑫鑫通卡\", \"朝阳银行·朝阳银行福农卡\", \"朝阳银行·红山卡\", \"宁波东海银行·绿叶卡\", \"遂宁市商业银行·锦程卡\", \"遂宁是商业银行·金荷卡\", \"保定银行·直隶卡\", \"保定银行·直隶卡\", \"凉山州商业银行·锦程卡\", \"凉山州商业银行·金凉山卡\", \"漯河银行·福卡\", \"漯河银行·福源卡\", \"漯河银行·福源公务卡\", \"达州市商业银行·锦程卡\", \"新乡市商业银行·新卡\", \"晋中银行·九州方圆借记卡\", \"晋中银行·九州方圆卡\", \"驻马店银行·驿站卡\", \"驻马店银行·驿站卡\", \"驻马店银行·公务卡\", \"衡水银行·金鼎卡\", \"衡水银行·借记IC卡\", \"周口银行·如愿卡\", \"周口银行·公务卡\", \"阳泉市商业银行·金鼎卡\", \"阳泉市商业银行·金鼎卡\", \"宜宾市商业银行·锦程卡\", \"宜宾市商业银行·借记IC卡\", \"库尔勒市商业银行·孔雀胡杨卡\", \"雅安市商业银行·锦城卡\", \"雅安市商业银行·--\", \"安阳银行·安鼎卡\", \"信阳银行·信阳卡\", \"信阳银行·公务卡\", \"信阳银行·信阳卡\", \"华融湘江银行·华融卡\", \"华融湘江银行·华融卡\", \"营口沿海银行·祥云借记卡\", \"景德镇商业银行·瓷都卡\", \"哈密市商业银行·瓜香借记卡\", \"湖北银行·金牛卡\", \"湖北银行·汉江卡\", \"湖北银行·借记卡\", \"湖北银行·三峡卡\", \"湖北银行·至尊卡\", \"湖北银行·金融IC卡\", \"西藏银行·借记IC卡\", \"新疆汇和银行·汇和卡\", \"广东华兴银行·借记卡\", \"广东华兴银行·华兴银联公司卡\", \"广东华兴银行·华兴联名IC卡\", \"广东华兴银行·华兴金融IC借记卡\", \"濮阳银行·龙翔卡\", \"宁波通商银行·借记卡\", \"甘肃银行·神舟兴陇借记卡\", \"甘肃银行·甘肃银行神州兴陇IC卡\", \"枣庄银行·借记IC卡\", \"本溪市商业银行·借记卡\", \"盛京银行·医保卡\", \"上海农商银行·如意卡(银联卡)\", \"上海农商银行·如意卡(银联卡)\", \"上海农商银行·鑫通卡\", \"上海农商银行·国际如意卡\", \"上海农商银行·借记IC卡\", \"常熟市农村商业银行·粒金贷记卡(银联卡)\", \"常熟市农村商业银行·公务卡\", \"常熟市农村商业银行·粒金准贷卡\", \"常熟农村商业银行·粒金借记卡(银联卡)\", \"常熟农村商业银行·粒金IC卡\", \"常熟农村商业银行·粒金卡\", \"深圳农村商业银行·信通卡(银联卡)\", \"深圳农村商业银行·信通商务卡(银联卡)\", \"深圳农村商业银行·信通卡\", \"深圳农村商业银行·信通商务卡\", \"广州农村商业银行·福农太阳卡\", \"广东南海农村商业银行·盛通卡\", \"广东南海农村商业银行·盛通卡(银联卡)\", \"佛山顺德农村商业银行·恒通卡(银联卡)\", \"佛山顺德农村商业银行·恒通卡\", \"佛山顺德农村商业银行·恒通卡(银联卡)\", \"江阴农村商业银行·暨阳公务卡\", \"江阴市农村商业银行·合作贷记卡(银联卡)\", \"江阴农村商业银行·合作借记卡\", \"江阴农村商业银行·合作卡(银联卡)\", \"江阴农村商业银行·暨阳卡\", \"重庆农村商业银行·江渝借记卡VIP卡\", \"重庆农村商业银行·江渝IC借记卡\", \"重庆农村商业银行·江渝乡情福农卡\", \"东莞农村商业银行·信通卡(银联卡)\", \"东莞农村商业银行·信通卡(银联卡)\", \"东莞农村商业银行·信通信用卡\", \"东莞农村商业银行·信通借记卡\", \"东莞农村商业银行·贷记IC卡\", \"张家港农村商业银行·一卡通(银联卡)\", \"张家港农村商业银行·一卡通(银联卡)\", \"张家港农村商业银行·\", \"北京农村商业银行·信通卡\", \"北京农村商业银行·惠通卡\", \"北京农村商业银行·凤凰福农卡\", \"北京农村商业银行·惠通卡\", \"北京农村商业银行·中国旅行卡\", \"北京农村商业银行·凤凰卡\", \"天津农村商业银行·吉祥商联IC卡\", \"天津农村商业银行·信通借记卡(银联卡)\", \"天津农村商业银行·借记IC卡\", \"鄞州农村合作银行·蜜蜂借记卡(银联卡)\", \"宁波鄞州农村合作银行·蜜蜂电子钱包(IC)\", \"宁波鄞州农村合作银行·蜜蜂IC借记卡\", \"宁波鄞州农村合作银行·蜜蜂贷记IC卡\", \"宁波鄞州农村合作银行·蜜蜂贷记卡\", \"宁波鄞州农村合作银行·公务卡\", \"成都农村商业银行·福农卡\", \"成都农村商业银行·福农卡\", \"珠海农村商业银行·信通卡(银联卡)\", \"太仓农村商业银行·郑和卡(银联卡)\", \"太仓农村商业银行·郑和IC借记卡\", \"无锡农村商业银行·金阿福\", \"无锡农村商业银行·借记IC卡\", \"黄河农村商业银行·黄河卡\", \"黄河农村商业银行·黄河富农卡福农卡\", \"黄河农村商业银行·借记IC卡\", \"天津滨海农村商业银行·四海通卡\", \"天津滨海农村商业银行·四海通e芯卡\", \"武汉农村商业银行·汉卡\", \"武汉农村商业银行·汉卡\", \"武汉农村商业银行·中国旅游卡\", \"江南农村商业银行·阳湖卡(银联卡)\", \"江南农村商业银行·天天红火卡\", \"江南农村商业银行·借记IC卡\", \"海口联合农村商业银行·海口联合农村商业银行合卡\", \"湖北嘉鱼吴江村镇银行·垂虹卡\", \"福建建瓯石狮村镇银行·玉竹卡\", \"浙江平湖工银村镇银行·金平卡\", \"重庆璧山工银村镇银行·翡翠卡\", \"重庆农村商业银行·银联标准贷记卡\", \"重庆农村商业银行·公务卡\", \"南阳村镇银行·玉都卡\", \"晋中市榆次融信村镇银行·魏榆卡\", \"三水珠江村镇银行·珠江太阳卡\", \"东营莱商村镇银行·绿洲卡\", \"建设银行·单位结算卡\", \"玉溪市商业银行·红塔卡\" }; /** * 校验银行卡卡号 是否合法 * * @param cardId * @return */ public static boolean checkBankCard(String cardId) { char bit = getBankCardCheckCode(cardId .substring(0, cardId.length() - 1)); if (bit == \'N\') { return false; } boolean isBankCard = cardId.charAt(cardId.length() - 1) == bit; KLog.e(\"银行卡:\" + isBankCard); return isBankCard; } /** * 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验位 * * @param nonCheckCodeCardId * @return */ public static char getBankCardCheckCode(String nonCheckCodeCardId) { if (nonCheckCodeCardId == null || nonCheckCodeCardId.trim().length() == 0 || !nonCheckCodeCardId.matches(\"\\\\d+\")) { // 如果传的不是数据返回N return \'N\'; } char[] chs = nonCheckCodeCardId.trim().toCharArray(); int luhmSum = 0; for (int i = chs.length - 1, j = 0; i >= 0; i--, j++) { int k = chs[i] - \'0\'; if (j % 2 == 0) { k *= 2; k = k / 10 + k % 10; } luhmSum += k; } return (luhmSum % 10 == 0) ? \'0\' : (char) ((10 - luhmSum % 10) + \'0\'); } /** * 通过银行卡 的前六位确定 判断银行开户行及卡种 * */ public static String getNameOfBank(String cardbin) { // 通过银行卡的前6位确定 cardbin = cardbin.substring(0, 6); int index = -1; for (int i = 0; i < BANKBIN.length; i++) { if (cardbin.equals(BANKBIN[i])) { index = i; } } if (index == -1) { return \"\"; } return BANKNAME[index]; }}

AppDateMgr.java

package com.jingewenku.abrahamcaijin.commonutil;import com.jingewenku.abrahamcaijin.commonutil.klog.KLog;import java.text.DateFormat;import java.text.DecimalFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale;import java.util.TimeZone;/** * @Description:主要功能:时间日期管理 * * @Prject: CommonUtilLibrary * @Package: com.jingewenku.abrahamcaijin.commonutil * @author: june * @date: 2017年05月05日 14:18 * @Copyright: 个人版权所有 * @Company: * @version: 1.0.0 */public class AppDateMgr { public AppDateMgr() { throw new UnsupportedOperationException(\"cannot be instantiated\"); } public static final SimpleDateFormat YYYYMMDD_FORMAT = new SimpleDateFormat(\"yyyy-MM-dd\", Locale.getDefault()); public static final SimpleDateFormat HHMMSS_FORMAT = new SimpleDateFormat(\"HH:mm:ss\", Locale.getDefault()); public static final SimpleDateFormat YYYYMMDDHHMMSS_FORMAT = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\", Locale.getDefault()); private static final String[] CHINESE_ZODIAC = new String[]{\"猴\", \"鸡\", \"狗\", \"猪\", \"鼠\", \"牛\", \"虎\", \"兔\", \"龙\", \"蛇\", \"马\", \"羊\"}; private static final String[] ZODIAC = new String[]{\"水瓶座\", \"双鱼座\", \"白羊座\", \"金牛座\", \"双子座\", \"巨蟹座\", \"狮子座\", \"处女座\", \"天秤座\", \"天蝎座\", \"射手座\", \"魔羯座\"}; private static final int[] ZODIAC_FLAGS = new int[]{20, 19, 21, 21, 21, 22, 23, 23, 23, 24, 23, 22}; /** * 获取北京时区 * @return */ public static TimeZone getBeijingTimeZone(){ return TimeZone.getTimeZone(\"GMT+8:00\"); } /** * 获取当前手机对应的系统时区 * */ public static TimeZone getPhoneTimeZone() { return TimeZone.getDefault(); } /** * 以“GMT+8:00”形式返回当前系统对应的时区 * @return */ public static String getCurrentTimeZoneStr() { TimeZone tz = TimeZone.getDefault(); return createGmtOffsetString(true,true,tz.getRawOffset()); } public static String createGmtOffsetString(boolean includeGmt, boolean includeMinuteSeparator, int offsetMillis) { int offsetMinutes = offsetMillis / 60000; char sign = \'+\'; if (offsetMinutes < 0) { sign = \'-\'; offsetMinutes = -offsetMinutes; } StringBuilder builder = new StringBuilder(9); if (includeGmt) { builder.append(\"GMT\"); } builder.append(sign); appendNumber(builder, 2, offsetMinutes / 60); if (includeMinuteSeparator) { builder.append(\':\'); } appendNumber(builder, 2, offsetMinutes % 60); return builder.toString(); } private static void appendNumber(StringBuilder builder, int count, int value) { String string = Integer.toString(value); for (int i = 0; i < count - string.length(); i++) { builder.append(\'0\'); } builder.append(string); } /** * 获取更改时区后的时间 * @param date 时间 * @param oldZone 旧时区 * @param newZone 新时区 * @return 时间 */ public static Date changeTimeZone(Date date, TimeZone oldZone, TimeZone newZone) { Date dateTmp = null; if (date != null) { int timeOffset = oldZone.getRawOffset() - newZone.getRawOffset(); dateTmp = new Date(date.getTime() - timeOffset); } return dateTmp; } /** * 将北京时区的时间转化为当前系统对应时区的时间 * @param beijingTime * @param format * @return */ public static String beijingTime2PhoneTime(String beijingTime,String format){ Date beijingDate = parseToDate(beijingTime, format); Date phoneDate = changeTimeZone(beijingDate, getBeijingTimeZone(), getPhoneTimeZone()); String phoneTime= formatDateToStr(phoneDate,format); return phoneTime; } /** * 将日期字符串转换为Date对象 * @param date 日期字符串,必须为\"yyyy-MM-dd HH:mm:ss\" * @param format 格式化字符串 * @return 日期字符串的Date对象表达形式 * */ public static Date parseToDate(String date, String format) { Date dt = null; SimpleDateFormat dateFormat = new SimpleDateFormat(format); try { dt = dateFormat.parse(date); } catch(ParseException e) { e.printStackTrace(); } return dt; } /** * 将date----->String * 将Date对象转换为指定格式的字符串 * @param date Date对象 * @param //String format 格式化字符串 * @return Date对象的字符串表达形式 * */ public static String formatDateToStr(Date date, String format) { SimpleDateFormat dateFormat = new SimpleDateFormat(format); return dateFormat.format(date); } /** 格式化日期的标准字符串 */ public final static String Detail_Format = \"yyyy-MM-dd HH:mm:ss\"; /** * 将本地系统对应时区的时间转换为上北京时区对应的时间 * @param phoneTime * @return */ public static String phoneTime2BeijingTime(String phoneTime){ Date phoneDate = parseToDate(phoneTime, Detail_Format); Date beijingDate = changeTimeZone(phoneDate,getPhoneTimeZone(), getBeijingTimeZone()); String beijingTime= formatDateToStr(beijingDate,Detail_Format); return beijingTime; } /** * 当天的年月日 * @return */ public static String todayYyyyMmDd() { return YYYYMMDD_FORMAT.format(new Date()); } /** * 当天的时分秒 * @return */ public static String todayHhMmSs() { return HHMMSS_FORMAT.format(new Date()); } /** * 当天的年月日时分秒 * @return */ public static String todayYyyyMmDdHhMmSs() { return YYYYMMDDHHMMSS_FORMAT.format(new Date()); } /** * 获取年 * @param dateTime * @return */ public static int parseYyyy(String dateTime) { try { Calendar e = Calendar.getInstance(); Date date = YYYYMMDDHHMMSS_FORMAT.parse(dateTime); e.setTime(date); return e.get(1); } catch (ParseException var3) { var3.printStackTrace(); return 0; } } /** * 获取年 * @param dateTime * @param simpleDateFormat * @return */ public static int parseYyyy(String dateTime, SimpleDateFormat simpleDateFormat) { try { Calendar e = Calendar.getInstance(); Date date = simpleDateFormat.parse(dateTime); e.setTime(date); return e.get(1); } catch (ParseException var4) { var4.printStackTrace(); return 0; } } /** * 获取年 * @param date * @return */ public static int parseYyyy(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); return cal.get(1); } /** * 获取月 * @param dateTime * @return */ public static int parseMm(String dateTime) { try { Calendar e = Calendar.getInstance(); Date date = YYYYMMDDHHMMSS_FORMAT.parse(dateTime); e.setTime(date); return e.get(2); } catch (ParseException var3) { var3.printStackTrace(); return 0; } } /** * 获取月 * @param dateTime * @param simpleDateFormat * @return */ public static int parseMm(String dateTime, SimpleDateFormat simpleDateFormat) { try { Calendar e = Calendar.getInstance(); Date date = simpleDateFormat.parse(dateTime); e.setTime(date); return e.get(2); } catch (ParseException var4) { var4.printStackTrace(); return 0; } } /** * 获取月 * @param date * @return */ public static int parseMm(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); return cal.get(2); } /** * 获取日 * @param dateTime * @return */ public static int parseDd(String dateTime) { try { Calendar e = Calendar.getInstance(); Date date = YYYYMMDDHHMMSS_FORMAT.parse(dateTime); e.setTime(date); return e.get(5); } catch (ParseException var3) { var3.printStackTrace(); return 0; } } /** * 获取日 * @param dateTime * @param simpleDateFormat * @return */ public static int parseDd(String dateTime, SimpleDateFormat simpleDateFormat) { try { Calendar e = Calendar.getInstance(); Date date = simpleDateFormat.parse(dateTime); e.setTime(date); return e.get(5); } catch (ParseException var4) { var4.printStackTrace(); return 0; } } /** * 获取日 * @param date * @return */ public static int parseDd(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); return cal.get(5); } /** * 获取年月日 * @param dateTime * @return */ public static String parseYyyyMmDd(String dateTime) { String result = \"\"; try { Date e = YYYYMMDDHHMMSS_FORMAT.parse(dateTime); result = YYYYMMDD_FORMAT.format(e); } catch (ParseException var3) { var3.printStackTrace(); } return result; } /** * 获取年月日 * @param dateTime * @param simpleDateFormat * @return */ public static String parseYyyyMmDd(String dateTime, SimpleDateFormat simpleDateFormat) { String result = \"\"; try { Date e = simpleDateFormat.parse(dateTime); result = YYYYMMDD_FORMAT.format(e); } catch (ParseException var4) { var4.printStackTrace(); } return result; } /** * 获取年月日 * @param date * @return */ public static String parseYyyyMmDd(Date date) { return YYYYMMDD_FORMAT.format(date); } /** * 时分秒 * @param dateTime * @return */ public static String parseHhMmSs(String dateTime) { try { Date e = YYYYMMDDHHMMSS_FORMAT.parse(dateTime); return HHMMSS_FORMAT.format(e); } catch (ParseException var2) { var2.printStackTrace(); return \"\"; } } /** * 时分秒 * @param dateTime * @param simpleDateFormat * @return */ public static String parseHhMmSs(String dateTime, SimpleDateFormat simpleDateFormat) { try { Date e = simpleDateFormat.parse(dateTime); return HHMMSS_FORMAT.format(e); } catch (ParseException var3) { var3.printStackTrace(); return \"\"; } } /** * 时分秒 * @param date * @return */ public static String parseHhMmSs(Date date) { return HHMMSS_FORMAT.format(date); } /** * 获取星期几 * @param dateTime * @return */ public static int getWeekNumber(String dateTime) { return getWeekNumber(string2Date(dateTime, YYYYMMDDHHMMSS_FORMAT)); } /** * 获取星期几 * @param dateTime * @param simpleDateFormat * @return */ public static int getWeekNumber(String dateTime, SimpleDateFormat simpleDateFormat) { return getWeekNumber(string2Date(dateTime, simpleDateFormat)); } /** * 获取星期几 * @param date * @return */ public static int getWeekNumber(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); return cal.get(7); } /** * 日期中某个月份的第几周 * @param dateTime * @return */ public static int getWeekOfMonth(String dateTime) { return getWeekOfMonth(string2Date(dateTime, YYYYMMDDHHMMSS_FORMAT)); } /** * 日期中某个月份的第几周 * @param dateTime * @param simpleDateFormat * @return */ public static int getWeekOfMonth(String dateTime, SimpleDateFormat simpleDateFormat) { return getWeekOfMonth(string2Date(dateTime, simpleDateFormat)); } /** * 日期中某个月份的第几周 * @param date * @return */ public static int getWeekOfMonth(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); return cal.get(4); } /** * 日期中某个年份的第几周 * @param time * @return */ public static int getWeekOfYear(String time) { return getWeekOfYear(string2Date(time, YYYYMMDDHHMMSS_FORMAT)); } /** * 日期中某个年份的第几周 * @param time * @param simpleDateFormat * @return */ public static int getWeekOfYear(String time, SimpleDateFormat simpleDateFormat) { return getWeekOfYear(string2Date(time, simpleDateFormat)); } /** * 日期中某个年份的第几周 * @param date * @return */ public static int getWeekOfYear(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); return cal.get(3); } /** * 将年月日时分秒转成Long类型 * @param dateTime * @return */ public static Long dateTimeToTimeStamp(String dateTime) { try { Date e = YYYYMMDDHHMMSS_FORMAT.parse(dateTime); return Long.valueOf(e.getTime() / 1000L); } catch (ParseException var2) { var2.printStackTrace(); return Long.valueOf(0L); } } /** * 将Long类型转成年月日时分秒 * @param timeStamp * @return */ public static String timeStampToDateTime(Long timeStamp) { return YYYYMMDDHHMMSS_FORMAT.format(new Date(timeStamp.longValue() * 1000L)); } /** * 将年月日时分秒转成Date类型 * @param time * @return */ public static Date string2Date(String time) { return string2Date(time, YYYYMMDDHHMMSS_FORMAT); } /** * 将年月日时分秒转成Date类型 * @param time * @param simpleDateFormat * @return */ public static Date string2Date(String time, SimpleDateFormat simpleDateFormat) { try { return simpleDateFormat.parse(time); } catch (ParseException var3) { var3.printStackTrace(); return null; } } /** * 将Date类型转成年月日时分秒 * @param date * @return */ public static String date2String(Date date) { return date2String(date, YYYYMMDDHHMMSS_FORMAT); } /** * 将Date类型转成年月日时分秒 * @param date * @param simpleDateFormat * @return */ public static String date2String(Date date, SimpleDateFormat simpleDateFormat) { return simpleDateFormat.format(date); } /** * 比较日期 * @param standDate * @param desDate * @return */ public static boolean dateIsBefore(String standDate, String desDate) { try { return YYYYMMDDHHMMSS_FORMAT.parse(desDate).before(YYYYMMDDHHMMSS_FORMAT.parse(standDate)); } catch (ParseException var3) { var3.printStackTrace(); return false; } } /** * 相差多少分钟 * @param beginDate * @param endDate * @return */ public static long minutesBetweenTwoDate(String beginDate, String endDate) { long millisBegin = dateTimeToTimeStamp(beginDate).longValue(); long millisEnd = dateTimeToTimeStamp(endDate).longValue(); return (millisEnd - millisBegin) / 60L; } /** * 获取日期中的生肖 * @param dateTime * @return */ public static String getChineseZodiac(String dateTime) { int yyyy = parseYyyy(dateTime); return getChineseZodiac(yyyy); } /** * 获取日期中的生肖 * @param dateTime * @param simpleDateFormat * @return */ public static String getChineseZodiac(String dateTime, SimpleDateFormat simpleDateFormat) { int yyyy = parseYyyy(dateTime, simpleDateFormat); return getChineseZodiac(yyyy); } /** * 获取日期中的生肖 * @param date * @return */ public static String getChineseZodiac(Date date) { int yyyy = parseYyyy(date); return getChineseZodiac(yyyy); } /** * 获取日期中的生肖 * @param year * @return */ public static String getChineseZodiac(int year) { return CHINESE_ZODIAC[year % 12]; } /** * 获取日期中的星座 * @param dateTime * @return */ public static String getZodiac(String dateTime) { int dd = parseDd(dateTime); int month = parseMm(dateTime); return getZodiac(month, dd); } /** * 获取日期中的星座 * @param dateTime * @param simpleDateFormat * @return */ public static String getZodiac(String dateTime, SimpleDateFormat simpleDateFormat) { int dd = parseDd(dateTime, simpleDateFormat); int month = parseMm(dateTime, simpleDateFormat); return getZodiac(month, dd); } /** * 获取日期中的星座 * @param date * @return */ public static String getZodiac(Date date) { int dd = parseDd(date); int month = parseMm(date); return getZodiac(month, dd); } /** * 获取日期中的星座 * @param month * @param day * @return */ public static String getZodiac(int month, int day) { return ZODIAC[day >= ZODIAC_FLAGS[month - 1]?month - 1:(month + 10) % 12]; } /** * 获取日期 * * @param offset 表示偏移天数 * @return */ public String getNowDayOffset(int offset) { Calendar m_Calendar = Calendar.getInstance(); long time = (long) m_Calendar.getTimeInMillis(); time = time + offset * 24 * 3600 * 1000; Date myDate = new Date(time); SimpleDateFormat df = new SimpleDateFormat(\"yyyy-MM-dd\"); return df.format(myDate); } /** * 获取日期 * * @param * @return */ public String getTime(long time) { Date myDate = new Date(time); SimpleDateFormat df = new SimpleDateFormat(\"yyyy-MM-dd hh:mm:ss\"); return df.format(myDate); } /** * 使指定日期向前走一天,变成“明天”的日期 * * @param cal 等处理日期 */ public void forward(Calendar cal) { int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH);//0到11 int day = cal.get(Calendar.DAY_OF_MONTH); int days = getDaysOfMonth(year, month + 1); if (day == days) {//如果是本月最后一天,还要判断年份是不是要向前滚 if (month == 11) {//如果是12月份,年份要向前滚 cal.roll(Calendar.YEAR, true); cal.set(Calendar.MONTH, 0);//月份,第一月是0 cal.set(Calendar.DAY_OF_MONTH, 1); } else {//如果不是12月份 cal.roll(Calendar.MONTH, true); cal.set(Calendar.DAY_OF_MONTH, 1); } } else { cal.roll(Calendar.DAY_OF_MONTH, 1);//如果是月内,直接天数加1 } } /** * 使日期倒一天 * * @param cal */ public void backward(Calendar cal) { //计算上一月有多少天 int month = cal.get(Calendar.MONTH);//0到11 int year = cal.get(Calendar.YEAR); int days = getDaysOfMonth(year, month);//上个月的天数 int day = cal.get(Calendar.DAY_OF_MONTH); if (day == 1) {//如果是本月第一天,倒回上一月 if (month == 0) {//如果是本年第一个月,年份倒一天 cal.roll(Calendar.YEAR, false); cal.set(Calendar.MONTH, 11);//去年最后一个月是12月 cal.set(Calendar.DAY_OF_MONTH, 31);//12月最后一天总是31号 } else {//月份向前 cal.roll(Calendar.MONTH, false); cal.set(Calendar.DAY_OF_MONTH, days);//上个月最后一天 } } else { cal.roll(Calendar.DAY_OF_MONTH, false);//如果是月内,日期倒一天 } } /** * 判断平年闰年 * * @param year * @return true表示闰年,false表示平年 */ public boolean isLeapYear(int year) { if (year % 400 == 0) { return true; } else if (year % 100 != 0 && year % 4 == 0) { return true; } return false; } /** * 计算某月的天数 * * @param year * @param month 现实生活中的月份,不是系统存储的月份,从1到12 * @return */ public int getDaysOfMonth(int year, int month) { if (month < 1 || month > 12) { return 0; } boolean isLeapYear = isLeapYear(year); int daysOfMonth = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: daysOfMonth = 31; break; case 4: case 6: case 9: case 11: daysOfMonth = 30; break; case 2: if (isLeapYear) {  daysOfMonth = 29; } else {  daysOfMonth = 28; } } return daysOfMonth; } /** * 获取当天凌晨的秒数 * * @return */ public long secondsMorning(Calendar c) { Calendar tempCalendar = Calendar.getInstance(); tempCalendar.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), 0, 0, 0); return tempCalendar.getTimeInMillis(); } /** * 获取第二天凌晨的秒数 * * @return */ public long secondsNight(Calendar c) { Calendar tempCalendar = Calendar.getInstance(); tempCalendar.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), 0, 0, 0); forward(tempCalendar); return tempCalendar.getTimeInMillis(); } /** * 判断某两天是不是同一天 * * @param c1 * @param c2 * @return */ public boolean isSameDay(Calendar c1, Calendar c2) { if (c1.get(Calendar.YEAR) != c2.get(Calendar.YEAR)) return false; if (c1.get(Calendar.MONTH) != c2.get(Calendar.MONTH)) return false; if (c1.get(Calendar.DAY_OF_MONTH) != c2.get(Calendar.DAY_OF_MONTH)) return false; return true; } /** 日期格式:yyyy-MM-dd HH:mm:ss **/ public static final String DF_YYYY_MM_DD_HH_MM_SS = \"yyyy-MM-dd HH:mm:ss\"; /** 日期格式:yyyy-MM-dd HH:mm **/ public static final String DF_YYYY_MM_DD_HH_MM = \"yyyy-MM-dd HH:mm\"; /** 日期格式:yyyy-MM-dd **/ public static final String DF_YYYY_MM_DD = \"yyyy-MM-dd\"; /** 日期格式:HH:mm:ss **/ public static final String DF_HH_MM_SS = \"HH:mm:ss\"; /** 日期格式:HH:mm **/ public static final String DF_HH_MM = \"HH:mm\"; private final static long MINUTE = 60 * 1000;// 1分钟 private final static long HOUR = 60 * MINUTE;// 1小时 private final static long DAY = 24 * HOUR;// 1天 private final static long MONTH = 31 * DAY;// 月 private final static long YEAR = 12 * MONTH;// 年 /** Log输出标识 **/ private static final String TAG = AppDateMgr.class.getSimpleName(); /** * 将日期格式化成友好的字符串:几分钟前、几小时前、几天前、几月前、几年前、刚刚 * * @param date * @return */ public static String formatFriendly(Date date) { if (date == null) { return null; } long diff = new Date().getTime() - date.getTime(); long r = 0; if (diff > YEAR) { r = (diff / YEAR); return r + \"年前\"; } if (diff > MONTH) { r = (diff / MONTH); return r + \"个月前\"; } if (diff > DAY) { r = (diff / DAY); return r + \"天前\"; } if (diff > HOUR) { r = (diff / HOUR); return r + \"个小时前\"; } if (diff > MINUTE) { r = (diff / MINUTE); return r + \"分钟前\"; } return \"刚刚\"; } /** * 将日期以yyyy-MM-dd HH:mm:ss格式化 * * @param dateL * 日期 * @return */ public static String formatDateTime(long dateL) { SimpleDateFormat sdf = new SimpleDateFormat(DF_YYYY_MM_DD_HH_MM_SS); Date date = new Date(dateL); return sdf.format(date); } /** * 将日期以yyyy-MM-dd HH:mm:ss格式化 * * @param dateL * 日期 * @return */ public static String formatDateTime(long dateL, String formater) { SimpleDateFormat sdf = new SimpleDateFormat(formater); return sdf.format(new Date(dateL)); } /** * 将日期以yyyy-MM-dd HH:mm:ss格式化 * * @param formater * 日期 * @return */ public static String formatDateTime(Date date, String formater) { SimpleDateFormat sdf = new SimpleDateFormat(formater); return sdf.format(date); } /** * 将日期字符串转成日期 * * @param strDate * 字符串日期 * @return java.util.date日期类型 */ public static Date parseDate(String strDate) { DateFormat dateFormat = new SimpleDateFormat(DF_YYYY_MM_DD_HH_MM_SS); Date returnDate = null; try { returnDate = dateFormat.parse(strDate); } catch (ParseException e) { KLog.v(TAG, \"parseDate failed !\"); } return returnDate; } /** * 获取系统当前日期 * * @return */ public static Date gainCurrentDate() { return new Date(); } /** * 验证日期是否比当前日期早 * * @param target1 * 比较时间1 * @param target2 * 比较时间2 * @return true 则代表target1比target2晚或等于target2,否则比target2早 */ public static boolean compareDate(Date target1, Date target2) { boolean flag = false; try { String target1DateTime = AppDateMgr.formatDateTime(target1, DF_YYYY_MM_DD_HH_MM_SS); String target2DateTime = AppDateMgr.formatDateTime(target2, DF_YYYY_MM_DD_HH_MM_SS); if (target1DateTime.compareTo(target2DateTime) <= 0) { flag = true; } } catch (Exception e1) { KLog.e(\"比较失败,原因:\" + e1.getMessage()); } return flag; } /** * 对日期进行增加操作 * * @param target * 需要进行运算的日期 * @param hour * 小时 * @return */ public static Date addDateTime(Date target, double hour) { if (null == target || hour < 0) { return target; } return new Date(target.getTime() + (long) (hour * 60 * 60 * 1000)); } /** * 对日期进行相减操作 * * @param target * 需要进行运算的日期 * @param hour * 小时 * @return */ public static Date subDateTime(Date target, double hour) { if (null == target || hour < 0) { return target; } return new Date(target.getTime() - (long) (hour * 60 * 60 * 1000)); } private static SimpleDateFormat second = new SimpleDateFormat( \"yy-MM-dd hh:mm:ss\"); private static SimpleDateFormat day = new SimpleDateFormat(\"yyyy-MM-dd\"); private static SimpleDateFormat detailDay = new SimpleDateFormat(\"yyyy年MM月dd日\"); private static SimpleDateFormat fileName = new SimpleDateFormat(\"yyyy-MM-dd-HH-mm-ss\"); private static SimpleDateFormat tempTime = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\"); private static SimpleDateFormat excelDate = new SimpleDateFormat(\"yyyy/MM/dd\"); /** * 格式化excel中的时间 * @param date * @return */ public static String formatDateForExcelDate(Date date) { return excelDate.format(date); } /** * 将日期格式化作为文件名 * @param date * @return */ public static String formatDateForFileName(Date date) { return fileName.format(date); } /** * 格式化日期(精确到秒) * * @param date * @return */ public static String formatDateSecond(Date date) { return second.format(date); } /** * 格式化日期(精确到秒) * * @param date * @return */ public static String tempDateSecond(Date date) { return tempTime.format(date); } /** * 格式化日期(精确到秒) * * @param str * @return */ public static Date tempDateSecond(String str) { try { return tempTime.parse(str); } catch (ParseException e) { e.printStackTrace(); } return new Date(); } /** * 格式化日期(精确到天) * * @param date * @return */ public static String formatDateDay(Date date) { return day.format(date); } /** * 格式化日期(精确到天) * * @param date * @return */ public static String formatDateDetailDay(Date date) { return detailDay.format(date); } /** * 将double类型的数字保留两位小数(四舍五入) * * @param number * @return */ public static String formatNumber(double number) { DecimalFormat df = new DecimalFormat(); df.applyPattern(\"#0.00\"); return df.format(number); } /** * 将字符串转换成日期 * * @param date * @return * @throws Exception */ public static Date formateDate(String date) throws Exception { return day.parse(date); } /** * 将字符日期转换成Date * @param date * @return * @throws Exception */ public static Date parseStringToDate(String date) throws Exception { return day.parse(date); } /** * 将double日期转换成String * @param number * @return */ public static String formatDoubleNumber(double number) { DecimalFormat df = new DecimalFormat(\"#\"); return df.format(number); } /** * 获得指定Date类型的毫秒数 * @param date 指定的Date * @return 指定Date类型的毫秒数 */ public static long getTimeMillis(Date date){ return date.getTime(); } /** * 获得当前时间的毫秒数 * @return 当前时间的毫秒数 */ public static long getCurrentDayTimeMillis(){ return System.currentTimeMillis(); } /** * 将格式化过的时间串转换成毫秒 * @param day 将格式化过的时间 * @param format 格式化字符串 * @return 毫秒 */ public static long convertMillisecond(String day, String format) { if (day == null || format == null) return 0; SimpleDateFormat formatter = new SimpleDateFormat(format); try { Date dt = formatter.parse(day); return dt.getTime(); } catch (ParseException e) { e.printStackTrace(); } return 0; } /** * 得到两个日期的天数 * @param sdate1 日期一 * @param sdate2 日期二 * @return 天数 */ public static int getDateInterval(String sdate1, String sdate2) { Date date1 = null; Date date2 = null; long betweenDays=0; try { date1 = new SimpleDateFormat(\"yyyy-MM-dd\").parse(sdate1); date2 = new SimpleDateFormat(\"yyyy-MM-dd\").parse(sdate2); long beginTime = date1.getTime(); long endTime = date2.getTime(); betweenDays = (long) ((endTime - beginTime) / (1000 * 60 * 60 * 24)); } catch (ParseException e) { e.printStackTrace(); } return (int) betweenDays; } /** * 时间比较 * @param format 格式化字符串 * @param time1 时间1 * @param time2 时间2 * @return time1比time2早返回-1,time1与time2相同返回0,time1比time2晚返回1 */ public static int compareTime(String format, String time1, String time2) { if (format == null || time1 == null || time2 == null) return 0; SimpleDateFormat formatter = new SimpleDateFormat(format); Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); try { c1.setTime(formatter.parse(time1)); c2.setTime(formatter.parse(time2)); } catch (ParseException e) { e.printStackTrace(); } return c1.compareTo(c2); } /** * 获得时区偏移量 相对GMT RFC 82 * * @param date * @return */ public static String time_offset(Date date) { return String.format(\"%tz\", date); } /** * 获得下午或上午 * * @param date * @return */ public static String am_or_pm(Date date) { return String.format(\"%tp\", date); } /** * 获得当前微妙数 9位 * * @param date * @return */ public static String subtle(Date date) { return String.format(\"%tN\", date); } /** * 获得当前毫秒数 3位 * * @param date * @return */ public static String mill(Date date) { return String.format(\"%tL\", date); } /** * 获得当前秒 2位 * * @param date * @return */ public static String second(Date date) { return String.format(\"%tS\", date); } /** * 获得当前分钟 2位 * * @param date * @return */ public static String minute(Date date) { return String.format(\"%tM\", date); } /** * 获得当前小时 1-12 * * @param date * @return */ public static String hour_l(Date date) { return String.format(\"%tl\", date); } /** * 获得当前小时 00-23 * * @param date * @return */ public static String hour_H(Date date) { return String.format(\"%tH\", date); } /** * 获得当前时间 15:25 * * @param date * @return */ public static String hour_minute(Date date) { return String.format(\"%tR\", date); } /** * 获得当前时间 15:23:50 * * @param date * @return */ public static String hour_minute_second(Date date) { return String.format(\"%tT\", date); } /** * 获得当前时间 03:22:06 下午 * * @param date * @return */ public static String hour_minute_second_pm_or_am(Date date) { return String.format(\"%tr\", date); } /** * 获取当前时间到日 03/25/08(月/日/年) * * @param date * @return */ public static String mdy(Date date) { return String.format(\"%tD\", date); } /** * 获取当前时间到日 2008-03-25 年—月—日 * * @param date * @return */ public static String ymd(Date date) { return String.format(\"%tF\", date); } /** * 获得日期天 1-31 * * @param date * @return */ public static String day_one(Date date) { return String.format(\"%te\", date); } /** * 获得日期天 01-31 * * @param date * @return */ public static String day_two(Date date) { return String.format(\"%td\", date); } /** * 一年中的第几天 085 * * @param date * @return */ public static String day_to_year(Date date) { return String.format(\"%tj\", date); } /** * 获得月份简称 */ public static String month_referred(Date date) { return String.format(\"%tb\", date); } /** * 获得月份全称 * * @param date * @return */ public static String month_full_name(Date date) { return String.format(\"%tB\", date); } /** * 获得月份 01-12 * * @param date * @return */ public static String month(Date date) { return String.format(\"%tm\", date); } /** *获得星期简称 * * @param date * @return */ public static String week_referred(Date date) { return String.format(\"%ta\", date); } /** * 获得星期全称 * * @param date * @return */ public static String week_full_name(Date date) { return String.format(\"%tA\", date); } /** * 获得年简称 16 * * @param date * @return */ public static String year_referred(Date date) { return String.format(\"%ty\", date); } /** * 获得年全称 2016 * * @param date * @return */ public static String year_full_name(Date date) { return String.format(\"%tY\", date); } /** * 星期二 三月 25 13:37:22 CST 2016 * * @param date * @return */ public static String time(Date date) { return String.format(\"%tc\", date); } /** * 获取时间戳到秒 * * @param date * @return */ public static String time_to_second(Date date) { return String.format(\"%ts\", date); } /** * 获取时间戳到毫秒 * * @param date * @return */ public static String time_to_mill(Date date) { return String.format(\"%tQ\", date); } /** * 获取时间戳到毫秒 * * @return */ public static long time_to_mill() { return System.currentTimeMillis(); } // /**// * 身份证号转生日// *// * @param identityCard 身份证// * @return 生日// */// public static Date identityCard2Date(String identityCard) {// try {// String dateStr;// if (identityCard.length() == 18) {// dateStr = identityCard.substring(6, 14);// 截取18位身份证身份证中生日部分// return formatDateString(dateStr, \"yyyyMMdd\");// }// if (identityCard.length() == 15) {// dateStr = identityCard.substring(6, 12);// 截取15位身份证中生日部分// return formatDateString(dateStr, \"yyMMdd\");// }// return null;// } catch (Exception e) {// return null;// }// }//// /**// * 格式化日期时间字符串// *// * @param dateString 日期时间字符串// * @param pattern 模式// * @return Date对象// */// public static Date formatDateString(String dateString, String pattern) {// try {// DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(pattern);// return dateTimeFormatter.parseDateTime(dateString).toDate();// } catch (Exception e) {// return null;// }// }}

… …

虽然并不复杂,但它背后承载的是我多年业务开发中的“踩坑总结 + 代码提炼”。


⚡ 四、第一次 Star 和第一次 Issue

📌 第一个 Star 的那一刻,我几乎跳了起来。

那是项目发布后的第二天,来自一个陌生 ID 的 Star 让我意识到——原来真的有人在看我写的东西!

紧接着,一个 Issue 让我“梦醒”了:

“你在 DateUtils 中的 getStartOfDay 方法在某些时区下会出现偏移,请考虑使用 ZonedDateTime。”

说实话,当时有点懵。但也是这个时刻,我意识到:

✅ “开源不是炫技,而是责任。”

于是我查资料、改代码、补测试,还顺手更新了文档,最终关闭了人生第一个 GitHub Issue。


🧭 五、我从中学到了什么?

开源不是写代码那么简单,它让我真正收获了:

1. 工程意识的提升

  • 如何模块化设计;
  • 如何写清晰的注释与文档;
  • 如何写单元测试;
  • 如何持续集成(CI)和发版。

2. 技术沟通能力

你需要学会:

  • 接受别人指出的问题;
  • 明确地回复 PR 和 Issue;
  • 考虑兼容性与社区反馈。

3. 自驱力 & 成就感

没人强迫你更新,你就是自己的产品经理、开发、测试和运营。

而每一个 Fork、每一次 PR、每一封感谢邮件,都是对你的肯定。


📦 六、项目目前的状态与进展

CommonUtilLibrary 目前:

  • 🌟 GitHub Star 数:2000+
  • ⏳ 累计更新:32 commits
  • 📦 Maven 中央仓库发布成功(支持一键引入)
  • 🤝 被多个 Spring Boot 项目作为基础工具库集成使用

我依然会在空闲时间维护它,或许不会频繁更新,但它代表着一种持续学习与输出的姿态。


📸 七、项目结构截图

在这里插入图片描述
在这里插入图片描述

CommonUtil/├── application/│ ├── AppUtils.java├── encryption/│ ├── AESUtils.java│ ├── CipherUtils.java│ ├── DESUtils.java│ ├── MD5Utils.java│ ├── RSAUtils.java│ ├── SHAUtils.java│ ├── TripleDESUtils.java├── view/│ ├── ScratchCard.java... ...

在这里插入图片描述


🧩 八、建议每一个开发者都拥有自己的开源仓库

你不需要是技术大牛,也不需要做出什么“爆款框架”。

只要你愿意:

  • 把自己项目中抽象出的工具沉淀出来;
  • 把踩坑经验整理成文档;
  • 把学习过程记录下来分享出去…

你已经是一个开源贡献者了。✨


📬 九、结语:一颗 Star,一段成长

我的开源旅程还在继续,而那个凌晨3点、手指颤抖提交代码的我,还在心中鼓励着今天的我。

最后,我想送给每一个准备开源的你一句话:

“不必等完美才开始,开始之后才会逐渐变得完美。”


如果你也有类似的开源初体验,欢迎在评论区留言,一起点亮更多开发者的“星光之路”。


📎 项目地址:https://github.com/AbrahamCaiJin/CommonUtilLibrary

📮 欢迎 Star、PR、Issue 或来信交流,一起让代码温暖世界。


一个开源项目的简单完成 ✅

转载自:https://blog.csdn.net/u014727709/article/details/135322262
欢迎 👍点赞✍评论⭐收藏,欢迎指正