获取年月日、小时分钟秒

public class DateTimeTest {public static void main(String[] args) {Calendar cal = Calendar.getInstance();System.out.println(cal.get(Calendar.YEAR));System.out.println(cal.get(Calendar.MONTH)+1); // 0 - 11System.out.println(cal.get(Calendar.DATE));System.out.println(cal.get(Calendar.HOUR_OF_DAY));System.out.println(cal.get(Calendar.MINUTE));System.out.println(cal.get(Calendar.SECOND));// Java 8LocalDateTime dt = LocalDateTime.now();System.out.println(dt.getYear());System.out.println(dt.getMonthValue()); // 1 - 12System.out.println(dt.getDayOfMonth());System.out.println(dt.getHour());System.out.println(dt.getMinute());System.out.println(dt.getSecond());}
}

获取某月的最后一天

public static void main(String[] args) {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");//获取当前月第一天:Calendar c = Calendar.getInstance();c.add(Calendar.MONTH, 0);c.set(Calendar.DAY_OF_MONTH, 1);//设置为 1 号,当前日期既为本月第一天String first = format.format(c.getTime());System.out.println("===============first:" + first);//获取当前月最后一天Calendar ca = Calendar.getInstance();ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));String last = format.format(ca.getTime());System.out.println("===============last:" + last);//Java 8LocalDate today = LocalDate.now();//本月的第一天LocalDate firstday = LocalDate.of(today.getYear(), today.getMonth(), 1);//本月的最后一天LocalDate lastDay = today.with(TemporalAdjusters.lastDayOfMonth());System.out.println("本月的第一天" + firstday);System.out.println("本月的最后一天" + lastDay);
}

打印昨天的当前时刻

public class YesterdayCurrent {public static void main(String[] args) {Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE, -1);System.out.println(cal.getTime());//java-8LocalDateTime today = LocalDateTime.now();LocalDateTime yesterday = today.minusDays(1);System.out.println(yesterday);}
}

格式化日期

public class DateFormatTest {public static void main(String[] args) {SimpleDateFormat oldFormatter = new SimpleDateFormat("yyyy/MM/dd");Date date1 = new Date();System.out.println(oldFormatter.format(date1));// Java 8DateTimeFormatter newFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");LocalDate date2 = LocalDate.now();System.out.println(date2.format(newFormatter));}
}

获取从 1970 年 1 月 1 日 0 时 0 分 0 秒到现在的毫秒数

public static void main(String[] args) {System.out.println(Calendar.getInstance().getTimeInMillis());//第一种方式System.out.println(System.currentTimeMillis()); //第二种方式// Java 8System.out.println(Clock.systemDefaultZone().millis());
}

Java 8 日期/时间常用 API

1.java.time.LocalDate

LocalDate 是一个不可变的类,它表示默认格式(yyyy-MM-dd)的日期,我们可以使用 now()方法得到当前时间,也可以提供输入年份、月份和日期的输入参数来创建一个 LocalDate 实例。该类为 now()方法提供了重载方法,我们可以传入 ZoneId 来获得指定时区的日期。该类提供与 java.sql.Date 相同的功能,对于如何使用该类,我们来看一个简单的例子。

package com.gtt.helloword.test;import java.time.LocalDate;
import java.time.Month;
import java.time.ZoneId;public class LocalDateExample {public static void main(String[] args) {//Current DateLocalDate today = LocalDate.now();System.out.println("Current Date=" + today);//Creating LocalDate by providing input argumentsLocalDate firstDay_2014 = LocalDate.of(2014, Month.JANUARY, 1);System.out.println("Specific Date=" + firstDay_2014);//Try creating date by providing invalid inputs//LocalDate feb29_2014 = LocalDate.of(2014, Month.FEBRUARY, 29);// Exception in thread "main" java.time.DateTimeException:// Invalid date 'February 29' as '2014' is not a leap year// Current date in "Asia/Kolkata", you can get it from ZoneId javadocLocalDate todayKolkata = LocalDate.now(ZoneId.of("Asia/Kolkata"));System.out.println("Current Date in IST=" + todayKolkata);//java.time.zone.ZoneRulesException: Unknown time-zone ID: IST//LocalDate todayIST = LocalDate.now(ZoneId.of("IST"));//Getting date from the base date i.e 01/01/1970LocalDate dateFromBase = LocalDate.ofEpochDay(365);System.out.println("365th day from base date= " + dateFromBase);LocalDate hundredDay2014 = LocalDate.ofYearDay(2014, 100);System.out.println("100th day of 2014=" + hundredDay2014);}
}

2.java.time.LocalTime

LocalTime 是一个不可变的类,它的实例代表一个符合人类可读格式的时间,默认格式是 hh:mm:ss.zzz。像LocalDate 一样,该类也提供了时区支持,同时也可以传入小时、分钟和秒等输入参数创建实例,我们来看一个简单的程序,演示该类的使用方法。

package com.gtt.helloword.test;import java.time.LocalTime;
import java.time.ZoneId;public class LocalTimeExample {public static void main(String[] args) {//Current TimeLocalTime time = LocalTime.now();System.out.println("Current Time="+time);//Creating LocalTime by providing input argumentsLocalTime specificTime = LocalTime.of(12,20,25,40);System.out.println("Specific Time of Day="+specificTime);//Try creating time by providing invalid inputs//LocalTime invalidTime = LocalTime.of(25,20);//Exception in thread "main" java.time.DateTimeException://Invalid value for HourOfDay (valid values 0 - 23): 25//Current date in "Asia/Kolkata", you can get it from ZoneId javadocLocalTime timeKolkata = LocalTime.now(ZoneId.of("Asia/Kolkata"));System.out.println("Current Time in IST="+timeKolkata);//java.time.zone.ZoneRulesException: Unknown time-zone ID: IST//LocalTime todayIST = LocalTime.now(ZoneId.of("IST"));//Getting date from the base date i.e 01/01/1970LocalTime specificSecondTime = LocalTime.ofSecondOfDay(10000);System.out.println("10000th second time= "+specificSecondTime);}
}

3.java.time.LocalDateTime

LocalDateTime 是一个不可变的日期-时间对象,它表示一组日期-时间,默认格式是 yyyy-MM-dd-HH-mm-ss.zzz。它提供了一个工厂方法,接收 LocalDate 和 LocalTime 输入参数,创建 LocalDateTime 实例。我们来看一个简单的例子。

package com.gtt.helloword.test;import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZoneOffset;public class LocalDateTimeExample {public static void main(String[] args) {//Current DateLocalDateTime today = LocalDateTime.now();System.out.println("Current DateTime=" + today);//Current Date using LocalDate and LocalTimetoday = LocalDateTime.of(LocalDate.now(), LocalTime.now());System.out.println("Current DateTime=" + today);//Creating LocalDateTime by providing input argumentsLocalDateTime specificDate = LocalDateTime.of(2014, Month.JANUARY, 1, 10, 10, 30);System.out.println("Specific Date=" + specificDate);//Try creating date by providing invalid inputs//LocalDateTime feb29_2014 = LocalDateTime.of(2014, Month.FEBRUARY, 28, 25,1,1);//Exception in thread "main" java.time.DateTimeException://Invalid value for HourOfDay (valid values 0 - 23): 25//Current date in "Asia/Kolkata", you can get it from ZoneId javadocLocalDateTime todayKolkata = LocalDateTime.now(ZoneId.of("Asia/Kolkata"));System.out.println("Current Date in IST=" + todayKolkata);//java.time.zone.ZoneRulesException: Unknown time-zone ID: IST//LocalDateTime todayIST = LocalDateTime.now(ZoneId.of("IST"));//Getting date from the base date i.e 01/01/1970LocalDateTime dateFromBase = LocalDateTime.ofEpochSecond(10000, 0, ZoneOffset.UTC);System.out.println("10000th second time from 01/01/1970= " + dateFromBase);}
}

4. java.time.Instant

Instant 类是用在机器可读的时间格式上的,它以 Unix 时间戳的形式存储日期时间,我们来看一个简单的程序。

package com.gtt.helloword.test;import java.time.Duration;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.concurrent.TimeUnit;public class InstantExample {public static void main(String[] args) {//Current timestampInstant timestamp = Instant.now();System.out.println("Current Timestamp = " + timestamp);System.out.println("秒数:"+timestamp.getEpochSecond());System.out.println("毫秒数:"+timestamp.toEpochMilli());// 增加8个小时Instant instant = Instant.now().plusMillis(TimeUnit.HOURS.toMillis(8));System.out.println("Current Timestamp = " + instant);// 指定区域为上海 亚洲时间ZonedDateTime zonedDateTime = Instant.now().atZone(ZoneId.systemDefault());System.out.println(zonedDateTime);//Instant from timestampInstant specificTime = Instant.ofEpochMilli(timestamp.toEpochMilli());System.out.println("Specific Time = " + specificTime);//Duration exampleDuration thirtyDay = Duration.ofDays(30);System.out.println(thirtyDay);}
}

5. 日期 API 工具

我们早些时候提到过,大多数日期/时间 API 类都实现了一系列工具方法,如:加/减天数、周数、月份数,等等。还有其他的工具方法能够使用 TemporalAdjuster 调整日期,并计算两个日期间的周期。

package com.gtt.helloword.test;import java.time.LocalDate;
import java.time.LocalTime;
import java.time.Period;
import java.time.temporal.TemporalAdjusters;public class DateAPIUtilities {public static void main(String[] args) {LocalDate today = LocalDate.now();//Get the Year, check if it's leap yearSystem.out.println("Year " + today.getYear() + " is Leap Year? " + today.isLeapYear());//Compare two LocalDate for before and afterSystem.out.println("Today is before 01/01/2015? " + today.isBefore(LocalDate.of(2015, 1, 1)));//Create LocalDateTime from LocalDateSystem.out.println("Current Time=" + today.atTime(LocalTime.now()));//plus and minus operationsSystem.out.println("10 days after today will be " + today.plusDays(10));System.out.println("3 weeks after today will be " + today.plusWeeks(3));System.out.println("20 months after today will be " + today.plusMonths(20));System.out.println("10 days before today will be " + today.minusDays(10));System.out.println("3 weeks before today will be " + today.minusWeeks(3));System.out.println("20 months before today will be " + today.minusMonths(20));//Temporal adjusters for adjusting the datesSystem.out.println("First date of this month= " + today.with(TemporalAdjusters.firstDayOfMonth()));LocalDate lastDayOfYear = today.with(TemporalAdjusters.lastDayOfYear());System.out.println("Last date of this year= " + lastDayOfYear);Period period = today.until(lastDayOfYear);System.out.println("Period Format= " + period);System.out.println("Months remaining in the year= " + period.getMonths());}
}

6. 解析和格式化

将一个日期格式转换为不同的格式,之后再解析一个字符串,得到日期时间对象,这些都是很常见的。我们来看一下简单的例子。

package com.gtt.helloword.test;import java.time.*;
import java.time.format.DateTimeFormatter;public class DateParseFormatExample {public static void main(String[] args) {//Format examplesLocalDate date = LocalDate.now();//default formatSystem.out.println("Default format of LocalDate=" + date);//specific formatSystem.out.println(date.format(DateTimeFormatter.ofPattern("d::MMM::uuuu")));System.out.println(date.format(DateTimeFormatter.BASIC_ISO_DATE));LocalDateTime dateTime = LocalDateTime.now();//default formatSystem.out.println("Default format of LocalDateTime=" + dateTime);//specific formatSystem.out.println(dateTime.format(DateTimeFormatter.ofPattern("d::MMM::uuuu HH::mm::ss")));System.out.println(dateTime.format(DateTimeFormatter.BASIC_ISO_DATE));Instant timestamp = Instant.now();//default formatSystem.out.println("Default format of Instant=" + timestamp);DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");指定区域为上海 亚洲时间ZonedDateTime zonedDateTime = Instant.now().atZone(ZoneId.systemDefault());System.out.println(formatter.format(zonedDateTime));//Parse examplesLocalDateTime dt = LocalDateTime.parse("27::2月::2014 21::39::48",DateTimeFormatter.ofPattern("d::MMM::uuuu HH::mm::ss"));System.out.println("Default format after parsing = " + dt);System.out.println(dt.format(DateTimeFormatter.BASIC_ISO_DATE));}
}

7. 旧的日期时间支持

旧的日期/时间类已经在几乎所有的应用程序中使用,因此做到向下兼容是必须的。这也是为什么会有若干工具方法帮助我们将旧的类转换为新的类,反之亦然。我们来看一下简单的例子。

package com.gtt.helloword.test;import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;public class DateAPILegacySupport {public static void main(String[] args) {//Date to InstantInstant timestamp = new Date().toInstant();//Now we can convert Instant to LocalDateTime or other similar classesLocalDateTime date = LocalDateTime.ofInstant(timestamp,ZoneId.of(ZoneId.SHORT_IDS.get("PST")));System.out.println("Date = " + date);//Calendar to InstantInstant time = Calendar.getInstance().toInstant();System.out.println(time);//TimeZone to ZoneIdZoneId defaultZone = TimeZone.getDefault().toZoneId();System.out.println(defaultZone);//ZonedDateTime from specific CalendarZonedDateTime gregorianCalendarDateTime = new GregorianCalendar().toZonedDateTime();System.out.println(gregorianCalendarDateTime);//Date API to Legacy classesDate dt = Date.from(Instant.now());System.out.println(dt);TimeZone tz = TimeZone.getTimeZone(defaultZone);System.out.println(tz);GregorianCalendar gc = GregorianCalendar.from(gregorianCalendarDateTime);System.out.println(gc);}
}

8.简单实用 java.time 的 API 实用

package com.gtt.helloword.test;import java.time.*;
import java.time.chrono.ChronoLocalDateTime;
import java.time.chrono.Chronology;
import java.time.chrono.HijrahChronology;
import java.time.format.DateTimeFormatter;
import java.time.temporal.IsoFields;
import java.util.Date;public class TimeIntroduction {public static void testClock() throws InterruptedException {//时钟提供给我们用于访问某个特定 时区的 瞬时时间、日期 和 时间的。Clock c1 = Clock.systemUTC(); //系统默认 UTC 时钟(当前瞬时时间 System.currentTimeMillis())System.out.println(c1.millis()); //每次调用将返回当前瞬时时间(UTC)Clock c2 = Clock.systemDefaultZone(); //系统默认时区时钟(当前瞬时时间)Clock c31 = Clock.system(ZoneId.of("Europe/Paris")); //巴黎时区System.out.println(c31.millis()); //每次调用将返回当前瞬时时间(UTC)Clock c32 = Clock.system(ZoneId.of("Asia/Shanghai"));//上海时区System.out.println(c32.millis());//每次调用将返回当前瞬时时间(UTC)Clock c4 = Clock.fixed(Instant.now(), ZoneId.of("Asia/Shanghai"));//固定上海时区时钟System.out.println(c4.millis());Thread.sleep(1000);System.out.println(c4.millis()); //不变 即时钟时钟在那一个点不动Clock c5 = Clock.offset(c1, Duration.ofSeconds(2)); //相对于系统默认时钟两秒的时钟System.out.println(c1.millis());System.out.println(c5.millis());}public static void testInstant() {//瞬时时间 相当于以前的 System.currentTimeMillis()Instant instant1 = Instant.now();System.out.println(instant1.getEpochSecond());//精确到秒 得到相对于 1970-01-01 00:00:00 UTC 的一个时间System.out.println(instant1.toEpochMilli()); //精确到毫秒Clock clock1 = Clock.systemUTC(); //获取系统 UTC 默认时钟Instant instant2 = Instant.now(clock1);//得到时钟的瞬时时间System.out.println(instant2.toEpochMilli());Clock clock2 = Clock.fixed(instant1, ZoneId.systemDefault()); //固定瞬时时间时钟Instant instant3 = Instant.now(clock2);//得到时钟的瞬时时间System.out.println(instant3.toEpochMilli());//equals instant1}public static void testLocalDateTime() {//使用默认时区时钟瞬时时间创建 Clock.systemDefaultZone() -->即相对于 ZoneId.systemDefault() 默认时区LocalDateTime now = LocalDateTime.now();System.out.println(now);//自定义时区LocalDateTime now2 = LocalDateTime.now(ZoneId.of("Europe/Paris"));System.out.println(now2);//会以相应的时区显示日期//自定义时钟Clock clock = Clock.system(ZoneId.of("Asia/Dhaka"));LocalDateTime now3 = LocalDateTime.now(clock);System.out.println(now3);//会以相应的时区显示日期//不需要写什么相对时间 如 java.util.Date 年是相对于 1900 月是从 0 开始//2013-12-31 23:59LocalDateTime d1 = LocalDateTime.of(2013, 12, 31, 23, 59);//年月日 时分秒 纳秒LocalDateTime d2 = LocalDateTime.of(2013, 12, 31, 23, 59, 59, 11);//使用瞬时时间 + 时区Instant instant = Instant.now();LocalDateTime d3 = LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault());System.out.println(d3);//解析 String--->LocalDateTimeLocalDateTime d4 = LocalDateTime.parse("2013-12-31T23:59");System.out.println(d4);LocalDateTime d5 = LocalDateTime.parse("2013-12-31T23:59:59.999");//999 毫秒 等价于 999000000 纳秒System.out.println(d5);//使用 DateTimeFormatter API 解析 和 格式化DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");LocalDateTime d6 = LocalDateTime.parse("2013/12/31 23:59:59", formatter);System.out.println(formatter.format(d6));//时间获取System.out.println(d6.getYear());System.out.println(d6.getMonth());System.out.println(d6.getDayOfYear());System.out.println(d6.getDayOfMonth());System.out.println(d6.getDayOfWeek());System.out.println(d6.getHour());System.out.println(d6.getMinute());System.out.println(d6.getSecond());System.out.println(d6.getNano());//时间增减LocalDateTime d7 = d6.minusDays(1);LocalDateTime d8 = d7.plus(1, IsoFields.QUARTER_YEARS);//LocalDate 即年月日 无时分秒//LocalTime 即时分秒 无年月日//API 和 LocalDateTime 类似就不演示了}public static void testZonedDateTime() {//即带有时区的 date-time 存储纳秒、时区和时差(避免与本地 date-time 歧义)。//API 和 LocalDateTime 类似,只是多了时差(如 2013-12-20T10:35:50.711+08:00[Asia/Shanghai])ZonedDateTime now = ZonedDateTime.now();System.out.println(now);ZonedDateTime now2 = ZonedDateTime.now(ZoneId.of("Europe/Paris"));System.out.println(now2);//其他的用法也是类似的 就不介绍了ZonedDateTime z1 = ZonedDateTime.parse("2013-12-31T23:59:59Z[Europe/Paris]");System.out.println(z1);}public static void testDuration() {//表示两个瞬时时间的时间段Duration d1 = Duration.between(Instant.ofEpochMilli(System.currentTimeMillis() - 12323123),Instant.now());//得到相应的时差System.out.println(d1.toDays());System.out.println(d1.toHours());System.out.println(d1.toMinutes());System.out.println(d1.toMillis());System.out.println(d1.toNanos());//1 天时差 类似的还有如 ofHours()Duration d2 = Duration.ofDays(1);System.out.println(d2.toDays());}public static void testChronology() {//提供对 java.util.Calendar 的替换,提供对年历系统的支持Chronology c = HijrahChronology.INSTANCE;ChronoLocalDateTime d = c.localDateTime(LocalDateTime.now());System.out.println(d);}/*** 新旧日期转换*/public static void testNewOldDateConversion() {Instant instant = new Date().toInstant();Date date = Date.from(instant);System.out.println(instant);System.out.println(date);}public static void main(String[] args) throws InterruptedException {testClock();testInstant();testLocalDateTime();testZonedDateTime();testDuration();testChronology();testNewOldDateConversion();}
}

java获取日期/时间相关推荐

  1. java:JAVA获取日期时间加一年或加一月或加一天

    //获取时间加一年或加一月或加一天     Date date = new Date();     Calendar cal = Calendar.getInstance();     cal.set ...

  2. JAVA获取日期时间加一年或加一月或加一天

    //获取时间加一年或加一月或加一天       Date date = new Date();       Calendar cal = Calendar.getInstance();       c ...

  3. java 获取日期格式化时间_java获取当前时间并格式化

    java获取当前时间并格式化 private static final DateTimeFormatter FORMAT_FOURTEEN = DateTimeFormatter.ofPattern( ...

  4. Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几

    Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...

  5. 如何使用Java获取当前日期/时间

    用Java获取当前日期/时间的最佳方法是什么? #1楼 采用: String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss") ...

  6. java得到文件创建时间linux,linux java获取文件创建时间

    linux java获取文件创建时间 [2021-01-31 07:35:22]  简介: 服务器 背景 有时候我们需要获取文件的创建时间. 例如: 我在研究 <xtrabackup 原理图&g ...

  7. Java获取系统时间

    Java获取系统时间 Java获取系统时间 在java 中,有很多种方法都可以获取到系统的当前时间,但也需要到对应的类,不同的类自然有不同的方法.这里为大家介绍获取系统当前时间的四种方式. 1. 通过 ...

  8. Java获取当前时间(二)

    import java.text.SimpleDateFormat; import java.util.Calendar; 方法一: SimpleDateFormat sdf = new Simple ...

  9. java获取当前时间和求时间差(分钟,秒钟,小时,年等)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.场景介绍 二.代码时间 1.获取当前时间 2.时间计算(加.减) 需求 前言 建议记住固定的api,因为是java ...

最新文章

  1. easyui 中combogrid 实现多选,反选效果
  2. WCF for .NET CF的一个应用及两个困惑的问题
  3. 聚集索引和非聚集索引实例
  4. Matlab中特征选择reliefF算法使用方法(分类与回归)
  5. SAP Commerce Cloud Spartacus UI 的 ActionClass 数据结构设计
  6. mac adb 找不到设备_win/Mac办公软件下载找不到资源?试试这三个强大的神器
  7. 南京张治中故居违规重建后标价6400万元出售
  8. 更新了android sdk出现aapt问题以及模拟器启动错误
  9. linux之strings命令
  10. 如何共享计算机磁盘,扩展群集共享磁盘的分区 - Windows Server | Microsoft Docs
  11. Linux shell 根据时间批量删除指定文件夹下的文件
  12. MySQL - 安装教程详细图解
  13. Lte/5G中的RSRP、RSRQ、SINR、MCS介绍
  14. ESP8266 WIFI模块调试及在QT Windows下的通讯
  15. 初创公司多产品线分红篇
  16. 电子信息工程求职目标_应用电子专业求职信范文合集6篇
  17. 深度学习发展历程(2012年以前)
  18. Win10 开始菜单丢失部分菜单项和部分应用快捷方式
  19. 电子词典的python3 结合网络编程项目实例源码
  20. Java支持的国家和语言

热门文章

  1. 为了反击爬虫,前端工程师的脑洞可以有多大?
  2. 慢节奏的和府,能否掌握资本带来的“加速度”
  3. 多模态机器学习简述(Guide to Multimodal Machine Learning)
  4. 求余小技巧 码农场 » POJ 3641 Pseudoprime numbers 题解 《挑战程序设计竞赛》
  5. Python|判断字符串是否符合日期要求
  6. 仿真软件测试工程师麦克,仿真工程师面试经验 - 共61条真实仿真工程师面试经验分享 - 职业圈...
  7. iPhone13充电宝哪个牌子好?iPhone13无线充电宝推荐
  8. 操作系统实验Ucore lab8+反馈队列
  9. 5,10,15,20-四-(4-二苯胺基-1-苯乙烯基)苯基卟啉(TPP-X4);紫色粉末5,10,15,20-四-(4-澳苯基)卟啉(TPP-Bra)齐岳供应
  10. 嵌入式ARM设计编程(三) 处理器工作模式