本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
5分45秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 示例 1 : 日期转字符串 示例 2 : 字符串转日期 示例 3 : 练习-日期格式化 示例 4 : 答案-日期格式化 y 代表年 M 代表月 d 代表日 H 代表24进制的小时 h 代表12进制的小时 m 代表分钟 s 代表秒 S 代表毫秒 package date;
//
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
//y 代表年
//M 代表月
//d 代表日
//H 代表24进制的小时
//h 代表12进制的小时
//m 代表分钟
//s 代表秒
//S 代表毫秒
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
Date d= new Date();
String str = sdf.format(d);
System.out.println("当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: "+str);
SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd" );
Date d1= new Date();
String str1 = sdf1.format(d1);
System.out.println("当前时间通过 yyyy-MM-dd 格式化后的输出: "+str1);
}
}
package date;
//
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" );
String str = "2016/1/5 12:12:12";
try {
Date d = sdf.parse(str);
System.out.printf("字符串 %s 通过格式 yyyy/MM/dd HH:mm:ss %n转换为日期对象: %s",str,d.toString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
准备一个长度是9的日期数组
使用1970年-2000年之间的随机日期初始化该数组 按照这些日期的时间进行升序排序 比如 1988-1-21 12:33:22 就会排在 1978-4-21 19:07:23 前面,因为它的时间更小,虽然日期更大
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
10分51秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 package date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
int yearStart = 1970;
int yearEnd = 2000;
Date[] ds = new Date[9];
for (int i = 0; i < ds.length; i++) {
ds[i] = getRandomDate(yearStart, yearEnd);
}
System.out.println("得到的随机日期数组:");
for (int i = 0; i < ds.length; i++) {
System.out.print(toString(ds[i])+"\t");
if(2==i%3)
System.out.println();
}
//选择法排序
for (int j = 0; j < ds.length-1; j++) {
for (int i = j+1; i < ds.length; i++) {
String strTimeI = toString(ds[i],"HHmmss");
String strTimeJ = toString(ds[j],"HHmmss");
int lTimeI = Integer.parseInt(strTimeI);
int lTimeJ = Integer.parseInt(strTimeJ);
if( lTimeI<lTimeJ ){
Date temp = ds[j];
ds[j] = ds[i];
ds[i] = temp;
}
}
}
System.out.println("排序后的随机日期数组:");
for (int i = 0; i < ds.length; i++) {
System.out.print(toString(ds[i])+"\t");
if(2==i%3)
System.out.println();
}
}
public static String toString(Date d) {
return toString(d, "yyyy-MM-dd HH:mm:ss");
}
public static String toString(Date d, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(d);
}
private static Date getRandomDate(int yearStart, int yearEnd) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
try {
Date dStart = sdf.parse(String.valueOf(yearStart)); // 1970
Date dEnd = sdf.parse(String.valueOf(yearEnd + 1)); // 2001 不是 2000,要在2001的基础上减少以毫秒,才表示2000最后一刻
long timeStart = dStart.getTime();
long timeEnd = dEnd.getTime() - 1;
long timeRandom = (long) (timeStart + Math.random() * (timeEnd - timeStart));
return new Date(timeRandom);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2024-03-13
使用随机数生成1970-200年的时间
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2023-02-27
随机数问题
3 个答案
ylzh_xjy 跳转到问题位置 答案时间:2023-11-15 public static void sortDateByTime() {
List<String> dateList = new ArrayList<>();
dateList.add("1979-05-24 19:06:36");
dateList.add("1982-08-20 06:28:50");
dateList.add("1970-11-06 10:44:18");
dateList.add("1974-09-01 15:27:34");
dateList.add("1993-06-17 01:01:40");
dateList.add("1984-06-19 16:20:30");
dateList.add("2000-09-30 18:49:16");
dateList.add("1989-12-31 09:01:01");
dateList.add("1989-06-27 02:04:31");
Comparator<String> comparator = new DateFormatComparator();
dateList.sort(comparator);
System.out.println(dateList.toString());
}
RobertLewandowski9 跳转到问题位置 答案时间:2023-09-25 xiaoba_java 跳转到问题位置 答案时间:2023-03-07
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2022-12-06
答案:日期格式化
2022-11-11
答案-思路生成日期后,提取时间排序
2022-09-01
如何只比较时间部分?使用SampleDateFormat格式化
提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 94 条以前的提问,请 点击查看
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|