代码拉取完成,页面将自动刷新
package com.youngdream.algorithm.simple.string;
/**
* @author YD
* @email 994300880@qq.com
* @date 2020/7/17 13:43
*/
public class ReformatDate {
/**
* 给你一个字符串 date ,它的格式为 Day Month Year ,其中:
* Day 是集合 {"1st", "2nd", "3rd", "4th", ..., "30th", "31st"} 中的一个元素。
* Month 是集合 {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"} 中的一个元素。
* Year 的范围在 [1900, 2100] 之间。
* 请你将字符串转变为 YYYY-MM-DD 的格式,其中:
* YYYY 表示 4 位的年份。
* MM 表示 2 位的月份。
* DD 表示 2 位的天数。
* <p>
* 示例 1:
* 输入:date = "20th Oct 2052"
* 输出:"2052-10-20"
* <p>
* 示例 2:
* 输入:date = "6th Jun 1933"
* 输出:"1933-06-06"
* <p>
* 示例 3:
* 输入:date = "26th May 1960"
* 输出:"1960-05-26"
*
* 提示:
* 给定日期保证是合法的,所以不需要处理异常输入。
*
* @param date 给定字符串
* @return 转变后的字符串
*/
public String reformatDate(String date) {
int len = date.length();
StringBuilder sb = new StringBuilder();
//添加年
sb.append(date, len - 4, len);
sb.append('-');
//添加月
sb.append(getNumber(date.substring(len - 8, len - 5)));
sb.append('-');
//添加日
if (len == 12) {
sb.append('0');
}
sb.append(date, 0, len - 11);
//正则影响性能
// String[] s = date.split(" ");
// String day = s[0];
// if (day.length() == 3) {
// day = "0" + day.charAt(0);
// } else {
// day = day.substring(0, 2);
// }
// String month = getNumber(s[1]);
// String year = s[2];
// return year + "-" + month + "-" + day;
return sb.toString();
}
String getNumber(String month) {
switch (month) {
case "Jan":
return "01";
case "Feb":
return "02";
case "Mar":
return "03";
case "Apr":
return "04";
case "May":
return "05";
case "Jun":
return "06";
case "Jul":
return "07";
case "Aug":
return "08";
case "Sep":
return "09";
case "Oct":
return "10";
case "Nov":
return "11";
default:
return "12";
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。