java实现将“yyyy-MM-dd”格式字符串转化成“yyyy年M月d日”格式

访客8年前 (2018-01-24)java技术6938

 

公共方法可直接套用:


          public static String getChinaDateFromString(String str) {
                try {
                    if(str==null ){
                        return getChinaCurrentDate();
                     }
                  str = str.trim();
                  int year = 0;
                  int month = 0;
                  int day = 0;
//                  System.out.println("==="+str);
                  if(str==null || str.equals("null") || str.equals("")){
                     return getChinaCurrentDate();
                  }
                  else if (str.indexOf("年") > 0||str.indexOf("月") > 0||str.indexOf("日") > 0) {
                    return str;
                  }
                  else {
                    if (str.length() == 10 && (str.indexOf("-") > 0)) { // by meconsea  add str.indexOf("-") > 0
                      year = Integer.parseInt(str.substring(0, 4));
                      month = Integer.parseInt(str.substring(5, 7));
                      day = Integer.parseInt(str.substring(8, 10));
                    }
                    else if (str.length() == 8) {
                      year = Integer.parseInt(str.substring(0, 4));
                      month = Integer.parseInt(str.substring(4, 6));
                      day = Integer.parseInt(str.substring(6, 8));
                    }
                    else if (str.length() == 6) {
                      year = Integer.parseInt(str.substring(0, 4));
                      month = Integer.parseInt(str.substring(4, 6));
                    }
                    if (day == 0)
                      str = year + "年" + month + "月";
                    else
                      str = year + "年" + month + "月" + day + "日";

                  }
                }
                catch (Exception e) {
                  e.printStackTrace();
                }
                return str;
              }
            
          public static String getChinaCurrentDate() {
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
                String str_date = dateFormat.format(Calendar.getInstance().getTime());
                str_date = str_date.substring(0, 4) + "年" + str_date.substring(4, 6) + "月" +
                    str_date.substring(6, 8) + "日 ";
                return str_date;
              }

      public static void main(String[] args) {
            System.out.println(getChinaDateFromString("2017-01-01"));
        }

测试运行结果:2017年1月1日

本文原创,转载必追究版权。

分享给朋友:

相关文章

plsql 中number类型字段 取消科学计数法显示

 PL/SQL DEVELOPER中禁用科学计数法:Tools - Prefrence - SQL Window - 选择:"Number fields to_char&quo...

坑爹的ShowModalDialog 后台传值解决方案

 今天遇到需要ShowModalDialog打开页面,通过acceptanceIds 参数值后台过滤出相应结果前台  var url = "loadAccept...

freeMarker Jfinal 获取session里的值

问题:freeMaker session取值的常用格式都试过 session["xxx"],session.xxx 直接xxx 都取不出来?????解决:JFinal与Struts...

js/jquery 日历控件及实例下载

js/jquery 日历控件及实例下载

实现日历控件效果:页面:<link href="${base}/resource/${profile.path}/css/lhgcalendar.css" rel="...

开机密码忘记怎么办

1、重新启动计算机,在启动画面出现后马上按下F8键(不同类型型号电脑启动键不一样,参考附加),选择“带命令行的安全模式”。2、运行过程结束时,系统列出了系统超级用户“administrator”和本地...

dwz+jfinal 市县下拉菜单二级联动(实例)

在DWZ文档中对组合框combox的是这样描述的:在传统的select 用class 定义:class=”combox”, html 扩展:保留原有属性name,  增加了属性:ref。re...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。