关于指定格式:
解析(格式化逆过程):
Date parse(String source)
:依据格式解析字符串,以生成一个日期(注意格式的匹配对应,否则抛异常)
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTest {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”); //带参指定格式实例化
Date parse = sdf.parse(“2020-12-20 22:03:19”);
System.out.println(parse);
}
}
这是一个抽象(abstract)类,主用用于完成日期字段之间相互操作的功能。
实例化:
①使用Calendar.getInstance()
该静态方法
②调用它的子类GregorianCalendar的构造器
常用方法:
import java.util.Calendar;
import java.util.Date;
public class CalendarTest {
public static void main(String[] args) {
Calendar instance = Calendar.getInstance();
//get():int get(int field)
int ofMouth = instance.get(Calendar.DAY_OF_MONTH);
System.out.println(ofMouth);
int ofYear = instance.get(Calendar.DAY_OF_YEAR);
System.out.println(ofYear);
//set():void set(int field,int value)
instance.set(Calendar.DAY_OF_MONTH,9);
System.out.println(instance.get(Calendar.DAY_OF_MONTH));
//add:void add(int field,int amount)
instance.add(Calendar.DAY_OF_MONTH,-2);
System.out.println(instance.get(Calendar.DAY_OF_MONTH));
//getTime:final Date getTime() 将日历类型转换为Date类型
Date time = instance.getTime();
System.out.println(time);
//setTime:final void setTime(Date date) 将Date类型转换为日历类型
instance.setTime(new Date());
System.out.println(“********” + instance.getTime());
}
}
一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、MINUTE、SECOND。
LocalDate、LocalTime、LocalDateTime 类
是其中较重要的几个子类,它们的实例
是不可变的对象,分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。
实例化:
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class TimeTest {
public static void main(String[] args) {
//now() 获取当前日期,时间,日期+时间
LocalDate now1 = LocalDate.now();
LocalTime now2 = LocalTime.now();
LocalDateTime now3 = LocalDateTime.now();
System.out.println(now1);
System.out.println(now2);
System.out.println(now3);
//of() 设置指定的年月日时分秒,没有偏移量
LocalDateTime of = LocalDateTime.of(2021, 9, 9, 15, 36, 40);
System.out.println(of);
}
}
其他常用方法:
import java.time.LocalDateTime;
public class TimeTest {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
//getXxx() 获取相关的属性
System.out.println(now.getDayOfWeek());
System.out.println(now.getMonth());
System.out.println(now.getMonthValue()); //…
//withXxx() 设置相关的属性,不可变性
LocalDateTime nowWith = now.withDayOfMonth(8);
System.out.println(nowWith);
System.out.println(now);
//plusXxx() 加,不可变性
LocalDateTime pl = now.plusMonths(2);
System.out.println(pl);
//minusXxx() 减,不可变性
LocalDateTime mi = now.minusDays(8);
System.out.println(mi);
}
}
Instant:时间线上的一个瞬时点。 这可能被用来记录应用程序中的事件时间
戳。
import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
public class InstantTest {
public static void main(String[] args) {
//获取本初子午线当前的标准时间
Instant now = Instant.now();
System.out.println(now);
//结合时区,添加当地时间偏移量
OffsetDateTime offsetDateTime = now.atOffset(ZoneOffset.ofHours(8));
System.out.println(offsetDateTime);
//返回1970-01-01 00:00:00到当前时间的毫秒数,即为时间戳
long l = now.toEpochMilli();
System.out.println(l);
//返回在1970-01-01 00:00:00基础上加上指定毫秒数之后的Instant类的对象
Instant instant = Instant.ofEpochMilli(l);
System.out.println(instant);
}
}
java.time.format.DateTimeFormatter 类
该类提供了三种格式化方法:
①预定义的标准格式,如:ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME
②本地化相关的格式,如:ofLocalizedDateTime(FormatStyle.LONG)
③自定义的格式,如:ofPattern(“yyyy-MM-dd hh:mm:ss”)
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.temporal.TemporalAccessor;
public class FormatterTest {
public static void main(String[] args) {
//方式一:预定义的标准格式
DateTimeFormatter isoDateTime = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
//格式化
String format1 = isoDateTime.format(LocalDateTime.now());
System.out.println(format1);
//解析
TemporalAccessor parse1 = isoDateTime.parse(format1);
System.out.println(parse1);
//方式二:本地化相关的格式
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);
//格式化
String format2 = dateTimeFormatter.format(LocalDateTime.now());
System.out.println(format2);
//解析
TemporalAccessor parse2 = dateTimeFormatter.parse(format2);
System.out.println(parse2);
//方式三:自定义格式
DateTimeFormatter dateTimeFormatter3 = DateTimeFormatter.ofPattern(“yyyy-MM-dd hh:mm:ss”);
//格式化
String format3 = dateTimeFormatter3.format(LocalDateTime.now());
System.out.println(format3);
//解析
TemporalAccessor parse3 = dateTimeFormatter3.parse(format3);
System.out.println(parse3);
}
最后
为什么我不完全主张自学?
①平台上的大牛基本上都有很多年的工作经验了,你有没有想过之前行业的门槛是什么样的,现在行业门槛是什么样的?以前企业对于程序员能力要求没有这么高,甚至十多年前你只要会写个“Hello World”,你都可以入门这个行业,所以以前要入门是完全可以入门的。
②现在也有一些优秀的年轻大牛,他们或许也是自学成才,但是他们一定是具备优秀的学习能力,优秀的自我管理能力(时间管理,静心坚持等方面)以及善于发现问题并总结问题。
如果说你认为你的目标十分明确,能做到第②点所说的几个点,以目前的市场来看,你才真正的适合去自学。
除此之外,对于绝大部分人来说,报班一定是最好的一种快速成长的方式。但是有个问题,现在市场上的培训机构质量参差不齐,如果你没有找准一个好的培训班,完全是浪费精力,时间以及金钱,这个需要自己去甄别选择。
我个人建议线上比线下的性价比更高,线下培训价格基本上没2W是下不来的,线上教育现在比较成熟了,此次疫情期间,学生基本上都感受过线上的学习模式。相比线下而言,线上的优势以我的了解主要是以下几个方面:
①价格:线上的价格基本上是线下的一半;
②老师:相对而言线上教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。
应该学哪些技术才能达到企业的要求?(下图总结)
如果说你认为你的目标十分明确,能做到第②点所说的几个点,以目前的市场来看,你才真正的适合去自学。
除此之外,对于绝大部分人来说,报班一定是最好的一种快速成长的方式。但是有个问题,现在市场上的培训机构质量参差不齐,如果你没有找准一个好的培训班,完全是浪费精力,时间以及金钱,这个需要自己去甄别选择。
我个人建议线上比线下的性价比更高,线下培训价格基本上没2W是下不来的,线上教育现在比较成熟了,此次疫情期间,学生基本上都感受过线上的学习模式。相比线下而言,线上的优势以我的了解主要是以下几个方面:
①价格:线上的价格基本上是线下的一半;
②老师:相对而言线上教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。
应该学哪些技术才能达到企业的要求?(下图总结)
[外链图片转存中…(img-ozbABtk8-1714364607115)]
[外链图片转存中…(img-t0QFkcZe-1714364607116)]