lob*_*ner 24 java date android-date
我有一个包含格式日期的字符串YYYY-MM-DD.
您如何建议我以DD-MM-YYYY最佳方式将其转换为格式?
这就是我天真的做法:
import java.util.*;
public class test {
public static void main(String[] args) {
String date = (String) args[0];
System.out.println(date); //outputs: YYYY-MM-DD
System.out.println(doConvert(date)); //outputs: DD-MM-YYYY
}
public static String doConvert(String d) {
String dateRev = "";
String[] dateArr = d.split("-");
for(int i=dateArr.length-1 ; i>=0 ; i--) {
if(i!=dateArr.length-1)
dateRev += "-";
dateRev += dateArr[i];
}
return dateRev;
}
}
Run Code Online (Sandbox Code Playgroud)
但还有其他更优雅和有效的方法吗?IE浏览器.使用一些内置功能?我一直无法找到一个,同时快速搜索API.
这里有人知道另一种方式吗?
duf*_*ymo 44
用途java.util.DateFormat:
DateFormat fromFormat = new SimpleDateFormat("yyyy-MM-dd");
fromFormat.setLenient(false);
DateFormat toFormat = new SimpleDateFormat("dd-MM-yyyy");
toFormat.setLenient(false);
String dateStr = "2011-07-09";
Date date = fromFormat.parse(dateStr);
System.out.println(toFormat.format(date));
Run Code Online (Sandbox Code Playgroud)
这里\xe2\x80\x99是现代答案。
\n\nprivate static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-uuuu");\n\npublic static String doConvert(String d) {\n return LocalDate.parse(d).format(formatter);\n}\nRun Code Online (Sandbox Code Playgroud)\n\n例如,我们可以这样做:
\n\n System.out.println(doConvert("2017-06-30"));\nRun Code Online (Sandbox Code Playgroud)\n\n这打印
\n\n30-06-2017\nRun Code Online (Sandbox Code Playgroud)\n\n我正在利用这样一个事实,即您拥有的格式YYYY-MM-DD符合 ISO 8601 标准,该标准是现代 Java 日期和时间类 \xe2\x80\x9c 本身理解\xe2\x80\x9d 的标准,因此我们不需要显式格式化程序解析,只有一个用于格式化。
当这个问题在 2011 年被问到时,SimpleDateFormat我也会给出这样的答案。较新的日期和时间 API 于 2014 年初随 Java 8 一起推出,并在 ThreeTen-Backport 项目中向后移植到 Java 6 和 7。对于 Android,请参阅 ThreeTenABP 项目。所以说实话,这些天我没有理由继续使用SimpleDateFormatand Date。较新的类对程序员更加友好并且易于使用。
| 归档时间: |
|
| 查看次数: |
26969 次 |
| 最近记录: |