DateTimeFormatter
是在Java 8
中引入的一个格式化器,用于打印和解析日期时间对象。
DateTimeFormatter
是不可变的,并且是线程安全的。
DateTimeFormatter使用用户定义的格式(如 "yyyy-MMM-dd hh:mm:ss"
)或使用预定义的常数(如ISO_LOCAL_DATE_TIME
)来格式化日期时间。
一个DateTimeFormatter
可以用所需的Locale
、Chronology
、ZoneId
和DecimalStyle
创建。
DateTimeFormatter
通过使用其ofPattern
方法被实例化为一个日期时间格式字符串。
实例化DateTimeFormatter
。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MMM-dd HH:mm:ss");
查找代码,用给定的格式打印日期时间(date-time
)对象的代码。
String dateTime = formatter.format(LocalDateTime.now());
System.out.println(dateTime); //2018-Dec-21 11:14:12
查找代码,用给定的格式解析一个日期时间(date-time
)对象。
LocalDateTime ldt = LocalDateTime.parse("2018-Dec-20 08:25:30", formatter);
System.out.println(ldt); //2018-12-20T08:25:30
下面,我们将讨论DateTimeFormatter
的方法,并举例说明LocalDate
、LocalDateTime
和LocalTime
实例的格式。
DateTimeFormatter
有以下静态方法来实例化DateTimeFormatter
。
FormatStyle
是一个枚举,其值可以是FULL
, LONG
, MEDIUM
, SHORT
。date-time
)格式的格式化器。date-time
)格式的格式化器。我们需要为日期和时间分别传递FormatStyle
。例如,日期可以是LONG
,时间可以是SHORT
。import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.Locale;
public class DateTimeFormatterDemo {
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("MMM dd, yyyy");
String formattedDate1 = formatter1.format(localDate);
System.out.println(formattedDate1); //Dec 17, 2018
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("MMM dd, yyyy", Locale.CANADA);
String formattedDate2 = formatter2.format(localDate);
System.out.println(formattedDate2); //Dec. 17, 2018
DateTimeFormatter formatter3 = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
String formattedDate3 = formatter3.format(localDate);
System.out.println(formattedDate3); //Monday, December 17, 2018
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter formatter4 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM);
String formattedDate4 = formatter4.format(localDateTime);
System.out.println(formattedDate4); //Dec 17, 2018, 9:14:39 PM
DateTimeFormatter formatter5 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG, FormatStyle.SHORT);
String formattedDate5 = formatter5.format(localDateTime);
System.out.println(formattedDate5); //December 17, 2018, 9:14 PM
LocalTime localTime = LocalTime.now();
DateTimeFormatter formatter6 = DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM);
String formattedDate6 = formatter6.format(localTime);
System.out.println(formattedDate6); //9:14:39 PM
}
}
输出
Dec 17, 2018
Dec. 17, 2018
Monday, December 17, 2018
Dec 17, 2018, 9:14:39 PM
December 17, 2018, 9:14 PM
9:14:39 PM
它是一个关于本地化日期、时间或日期时间(date-time
)格式化风格的枚举。
它有以下常数。
1.FULL:例如 'Tuesday, April 11, 2015 AD' or '5:30:45pm PST'
.
2. LONG:例如 'January 10, 2018'
.
3. MEDIUM:例如 'Jan 10, 2018'
4. SHORT:例如 '11.15.50' or '6:30pm'
.
为了格式化一个日期、时间或日期时间(date-time
),DateTimeFormatter
提供了以下方法。
date-time
)对象进行格式化,并以字符串形式返回。date-time
)对象进行格式化,并将结果附加到给定的Appendable
对象中。Appendable
对象可以是StringBuffer
、StringBuilder
等的实例。import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterDemo {
public static void main(String[] args) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MMM-dd hh:mm:ss");
LocalDateTime ldt = LocalDateTime.now();
System.out.println(dtf.format(ldt)); //2018-Dec-20 03:50:45
StringBuffer sb = new StringBuffer("Date ");
dtf.formatTo(ldt, sb);
System.out.println(sb); //Date 2018-Dec-20 03:50:45
}
}
输出
2018-Dec-20 03:50:45
Date 2018-Dec-20 03:50:45
LocalDate
是一个在ISO-8601
日历系统中没有时区的日期。
找到使用DateTimeFormatter
格式化LocalDate
的例子。
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterDemo {
public static void main(String[] args) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
LocalDate ld = LocalDate.now();
System.out.println(dtf.format(ld)); //2018-Dec-20
dtf = DateTimeFormatter.ofPattern("yyyy-MMM-dd(E)");
ld = LocalDate.now();
System.out.println(dtf.format(ld)); //2018-Dec-20(Thu)
dtf = DateTimeFormatter.ofPattern("MMM dd, YYYY");
ld = LocalDate.now();
System.out.println(dtf.format(ld)); //Dec 20, 2018
}
}
输出
2018-Dec-20
2018-Dec-20(Thu)
Dec 20, 2018
DateTimeFormatter
也被用来解析一个本地日期。
查找示例代码。
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMM dd, yyyy");
LocalDate ld = LocalDate.parse("Dec 20, 2018", dtf);
System.out.println(ld);
输出
2018-12-20
LocalDateTime
是ISO-8601
日历系统中没有时区的日期时间。
查找使用DateTimeFormatter
格式化LocalDateTime
的示例。
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterDemo {
public static void main(String[] args) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MMM-dd hh:mm:ss");
LocalDateTime ldt = LocalDateTime.now();
System.out.println(dtf.format(ldt)); //2018-Dec-20 07:40:03
dtf = DateTimeFormatter.ofPattern("yyyy-MMM-dd(E) hh:mm:ss a");
ldt = LocalDateTime.now();
System.out.println(dtf.format(ldt)); //2018-Dec-20(Thu) 07:40:03 PM
dtf = DateTimeFormatter.ofPattern("yy-MM-dd HH:mm:ss");
ldt = LocalDateTime.now();
System.out.println(dtf.format(ldt)); //18-12-20 19:40:03
}
}
输出
2018-Dec-20 07:40:03
2018-Dec-20(Thu) 07:40:03 PM
18-12-20 19:40:03
DateTimeFormatter
也被用来解析本地日期时间。
查找示例代码。
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MMM-dd HH:mm:ss");
LocalDateTime ldt = LocalDateTime.parse("2018-Dec-20 08:25:30", dtf);
System.out.println(ldt);
输出
2018-12-20T08:25:30
LocalTime
是ISO-8601
日历系统中没有时区的时间。
查找使用DateTimeFormatter
格式化LocalTime
的例子。
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterDemo {
public static void main(String[] args) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("hh:mm:ss");
LocalTime lt = LocalTime.now();
System.out.println(dtf.format(lt)); //08:03:32
dtf = DateTimeFormatter.ofPattern("hh:mm:ss a");
lt = LocalTime.now();
System.out.println(dtf.format(lt)); //08:03:32 PM
dtf = DateTimeFormatter.ofPattern("HH:mm");
lt = LocalTime.now();
System.out.println(dtf.format(lt)); //20:03
}
}
输出
08:03:32
08:03:32 PM
20:03
DateTimeFormatter
也被用来解析本地时间。
查找示例代码。
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime lt = LocalTime.parse("08:25:30", dtf);
System.out.println(lt);
输出
08:25:30
DateTimeFormatter
提供以下方法来解析文本。
1.
TemporalAccessor parse(CharSequence text)
解析一个日期、时间或日期时间(date-time
)的文本,并返回时间性(temporal
)对象。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy hh:mm:ss");
TemporalAccessor ta = formatter.parse("18-Dec-2017 02:46:41");
System.out.println(ta.get(ChronoField.YEAR));
System.out.println(ta.get(ChronoField.HOUR_OF_AMPM));
输出
2017
2
2.
TemporalAccessor parse(CharSequence text, ParsePosition position)
我们可以通过ParsePosition
来转义给定文本中的一些字符。
我们用给定的初始索引启动一个ParsePosition
,parse
方法将从那里开始解析给定的文本。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy hh:mm:ss");
TemporalAccessor ta = formatter.parse("Date 18-Dec-2017 02:46:41", new ParsePosition(5));
System.out.println(ta.get(ChronoField.YEAR));
System.out.println(ta.get(ChronoField.HOUR_OF_AMPM));
输出
2017
2
3.
<T> T parse(CharSequence text, TemporalQuery<T> query)
解析给定的文本并返回TemporalQuery
指定的对象。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy hh:mm:ss");
LocalDate localDate = formatter.parse("18-Dec-2017 02:46:41", TemporalQueries.localDate());
System.out.println(localDate);
输出
2017-12-18
4.
TemporalAccessor parseBest(CharSequence text, TemporalQuery<?>... queries)
解析给定文本并返回其中一个指定类型。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy hh:mm:ss");
TemporalAccessor ta = formatter.parseBest("18-Dec-2017 02:46:41",
TemporalQueries.localDate(), TemporalQueries.localTime());
System.out.println(ta);
输出
2017-12-18
5.
TemporalAccessor parseUnresolved(CharSequence text, ParsePosition position)
用给定的ParsePosition
解析给定的文本,但不解决它。
这意味着即使月日是38
,它也不会产生错误。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy hh:mm:ss");
TemporalAccessor ta = formatter.parseUnresolved("Date 38-Dec-2017 02:46:41", new ParsePosition(5));
System.out.println(ta);
输出
{
DayOfMonth=38, ClockHourOfAmPm=2, MinuteOfHour=46, YearOfEra=2017, SecondOfMinute=41, MonthOfYear=12},null
6.
static TemporalQuery<Period> parsedExcessDays()
提供一个查询,以访问作为已解析的Period
的多余天数。
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;
public class DateTimeFormatterDemo {
public static void main(String[] args) {
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("HH:mm");
TemporalAccessor parsed1 = formatter1.parse("24:00");
LocalTime lt1 = parsed1.query(LocalTime::from);
Period excessDays1 = parsed1.query(DateTimeFormatter.parsedExcessDays());
System.out.println(lt1 + " , " + excessDays1); //00:00 , P1D
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
TemporalAccessor parsed2 = formatter2.parse("2018-12-03 24:00");
LocalDateTime lt2 = parsed2.query(LocalDateTime::from);
Period excessDays2 = parsed2.query(DateTimeFormatter.parsedExcessDays());
System.out.println(lt2 + " , " + excessDays2); //2018-12-04T00:00 , P0D
}
}
输出
00:00 , P1D
2018-12-04T00:00 , P0D
我们可以看到,当我们只有时间时,24:00
(一天的结束),我们得到的时间是00
和超过1
天(P1D
意味着有1
天的时间)。
但是当我们同时提供日期和时间时,在这种情况下,多余的天数就会加到日期部分。在我们的例子中,我们可以看到第3
天已经变成了第4
天,多余的天数为0
。
7.
static TemporalQuery<Boolean> parsedLeapSecond()
提供一个查询,用于访问是否解析了闰秒。
如果解析到闰秒,该查询返回真,否则返回假。
在UTC
时区,闰秒发生在'23:59:60'
。
在其他时区,时间可能不同。
查找示例。
import java.time.Instant;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;
public class DateTimeFormatterDemo {
public static void main(String[] args) {
DateTimeFormatter formatter = DateTimeFormatter.ISO_INSTANT;
TemporalAccessor parsed = formatter.parse("2017-12-31T23:59:60Z");
Instant instant = parsed.query(Instant::from);
System.out.println(instant);
System.out.println("leap second parsed="
+ parsed.query(DateTimeFormatter.parsedLeapSecond()));
}
}
输出
2017-12-31T23:59:59Z
leap second parsed=true
DateTimeFormatter.ISO_INSTANT
用UTC
格式化一个瞬间(instant
)。
下列方法返回DateTimeFormatter
实例。
我们可以在使用DateTimeFormatterBuilder
实例化DateTimeFormatter
时使用上述方法。
查找示例代码。
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.chrono.IsoChronology;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.format.DecimalStyle;
import java.time.format.ResolverStyle;
import java.time.format.TextStyle;
import java.time.temporal.ChronoField;
import java.util.Locale;
public class DateTimeFormatterDemo {
public static void main(String[] args) {
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
DateTimeFormatter formatter = builder.appendLiteral("Day is:")
.appendValue(ChronoField.DAY_OF_MONTH)
.appendLiteral(", month is:")
.appendValue(ChronoField.MONTH_OF_YEAR)
.appendLiteral(", and year:")
.appendPattern("u")
.appendLiteral(" with the time:")
.appendValue(ChronoField.HOUR_OF_DAY)
.appendLiteral(":")
.appendText(ChronoField.MINUTE_OF_HOUR, TextStyle.NARROW_STANDALONE)
.toFormatter()
.withDecimalStyle(DecimalStyle.STANDARD)
.withChronology(IsoChronology.INSTANCE)
.withLocale(Locale.CANADA)
.withResolverStyle(ResolverStyle.LENIENT)
.withZone(ZoneId.systemDefault());
LocalDateTime dateTime = LocalDateTime.now();
String str = dateTime.format(formatter);
System.out.println(str);
}
}
输出
Day is:20, month is:12, and year:2018 with the time:11:36
我们可以使用以下方法获取DateTimeFormatter
对象信息。
getChronology():获取年表。
getDecimalStyle():获取十进制风格。
getLocale():获取区域设置。
getResolverFields():获取解析器字段。
getResolverStyle():获取解析器样式。
getZone():获取区域。
示例
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterDemo {
public static void main(String[] args) {
DateTimeFormatter dtf = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
System.out.println("Chronology: " + dtf.getChronology());
System.out.println("DecimalStyle: " + dtf.getDecimalStyle());
System.out.println("Locale: "+ dtf.getLocale());
System.out.println("ResolverFields: "+ dtf.getResolverFields());
System.out.println("ResolverStyle: "+ dtf.getResolverStyle());
System.out.println("Zone: "+ dtf.getZone());
}
}
输出
Chronology: ISO
DecimalStyle: DecimalStyle[0+-.]
Locale: en_US
ResolverFields: null
ResolverStyle: STRICT
Zone: null
DateTimeFormatter
提供以下方法将DateTimeFormatter
转换为java.text.Format
。
示例
import java.text.Format;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterDemo {
public static void main(String[] args) {
DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("MMM dd, yyyy");
Format format1 = dtf1.toFormat();
String ld = format1.format(LocalDate.parse("2017-12-20"));
System.out.println(ld); //Dec 20, 2017
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("HH:mm:ss");
Format format2 = dtf2.toFormat();
String time = format2.format(LocalDateTime.now());
System.out.println(time); //12:34:23
}
}
输出
Dec 20, 2017
12:34:23
DateTimeFormatter
有以下预定义的格式。
Formatter | Example |
---|---|
BASIC_ISO_DATE | ‘20181203’ |
ISO_LOCAL_DATE | ‘2018-12-03’ |
ISO_OFFSET_DATE | ‘2018-12-03+01:00’ |
ISO_DATE | ‘2018-12-03+01:00’; ‘2018-12-03’ |
ISO_LOCAL_TIME | ‘11:15:30’ |
ISO_OFFSET_TIME | ‘11:15:30+01:00’ |
ISO_TIME | ‘11:15:30+01:00’; ‘11:15:30’ |
ISO_LOCAL_DATE_TIME | ‘2018-12-03T11:15:30’ |
ISO_OFFSET_DATE_TIME | ‘2018-12-03T11:15:30+01:00’ |
ISO_ZONED_DATE_TIME | ‘2018-12-03T11:15:30+01:00[Europe/Paris]’ |
ISO_DATE_TIME | ‘2018-12-03T11:15:30+01:00[Europe/Paris]’ |
ISO_ORDINAL_DATE | ‘2018-337’ |
ISO_WEEK_DATE | ‘2018-W48-6’ |
ISO_INSTANT | ‘2018-12-03T11:15:30Z’ |
RFC_1123_DATE_TIME | ‘Tue, 3 Jun 2018 11:05:30 GMT’ |
例如,我们正在提供一个示例,以便使用预定义格式化器ISO_WEEK_DATE
来打印和解析本地日期。
找到代码。
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterDemo {
public static void main(String[] args) {
DateTimeFormatter formatter = DateTimeFormatter.ISO_WEEK_DATE;
String dateTime = formatter.format(LocalDate.now());
System.out.println(dateTime); //2018-W51-5
LocalDate ld = LocalDate.parse("2018-W40-4", formatter);
System.out.println(ld); //2018-10-04
}
}
输出
2018-W51-5
2018-10-04
找到格式化日期时间的模式字母(letters
)和符号(symbols
)。
Symbol | Description | Example |
---|---|---|
G | era | AD; Anno Domini; A |
u | year | 2018; 18 |
y | year-of-era | 2018; 18 |
D | day-of-year | 180 |
M/L | month-of-year | 7; 07; Jul; July; J |
d | day-of-month | 11 |
g | modified-julian-day | 2451334 |
Q/q | quarter-of-year | 3; 03; Q3; 3rd quarter |
Y | week-based-year | 1999; 99 |
w | week-of-week-based-year | 25 |
W | week-of-month | 3 |
E | day-of-week | Tue; Tuesday; T |
e/c | localized day-of-week | 2; 02; Tue; Tuesday; T |
F | day-of-week-in-month | 2 |
a | am-pm-of-day | AM |
h | clock-hour-of-am-pm (1-12) | 12 |
K | hour-of-am-pm (0-11) | 0 |
k | clock-hour-of-day (1-24) | 24 |
H | hour-of-day (0-23) | 0 |
m | minute-of-hour | 35 |
s | second-of-minute | 50 |
S | fraction-of-second | 970 |
A | milli-of-day | 1234 |
n | nano-of-second | 987654321 |
N | nano-of-day | 1234000000 |
V | time-zone ID | America/Los_Angeles; Z; -08:30 |
v | generic time-zone name | Pacific Time; PT |
z | time-zone name | Pacific Standard Time; PST |
O | localized zone-offset | GMT+8; GMT+08:00; UTC-08:00 |
X | zone-offset ‘Z’ for zero | Z; -08; -0830; -08:30; -083015; -08:30:15 |
x | zone-offset | +0000; -08; -0830; -08:30; -083015; -08:30:15 |
Z | zone-offset | +0000; -0800; -08:00 |
p | pad next | 1 |
' |
escape for text | |
'' |
single quote | ' |
[ | optional section start | |
] | optional section end |
【1】Class DateTimeFormatter
【2】Java LocalDate
【3】Java DateTimeFormatter
文章浏览阅读1.7k次。问题:IAR调试STM32程序,点击调试按钮后软件自动关闭,并弹出报错提示框解决:将调试的接口模式改为SWD模式即可。我的原先设置为JTAG模式。_iar在debug时停止工作
文章浏览阅读742次。100兆宽带的网速通常指的是每秒可以传输的数据量为100兆比特(Mb)。在此情况下,1兆比特(Mb)等于100万比特(Mbps),而1字节(B)等于8比特(bps)。因此,100兆宽带的网速可以计算如下:100兆比特/秒=100/8 兆字节/秒= 12.5兆字节/秒所以,100兆宽带的网速约为12.5MBps(兆字节/秒),也可以说为100Mbps(兆比特/秒)。但是需要注意的是,实际的下载和上传速度可能受到各种因素的影响,如网络拥堵、设备性能等。因此,实际使用中您可能会感受到较低的速度。_100m的宽带网速是多少兆
文章浏览阅读2.4w次,点赞13次,收藏44次。Windows 7 通用 CDC 串口驱动程序Windows 7 自带 CDC 串口类设备的驱动程序文件 usbser.sys,所缺的是驱动配置文件 usbser.inf 文件,将 Windows 10 的 usbser.inf 文件拷贝到 Windows 7,注释掉 SourceDisksNames 和 SourceDisksFiles 部分就可以作为 Windows 7 的 CDC 串口类..._cdcserial驱动 win7
文章浏览阅读2.5k次,点赞53次,收藏51次。NLP-词表示_nlp中词语的表示
文章浏览阅读2.4k次。sed -i 's/[ ][ ]*/ /g' file.txt _sed 多个空格替换为1个
文章浏览阅读125次。1. 创建maven聚合工程,结构如下:2. 父工程pom.xml文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ht_springboot dubbo整合日志
文章浏览阅读1.5k次。Chocolatey是什么?很简单,Chocolatey就是Windows系统的yum或apt-get。一、Chocolatey介绍Chocolatey是一款专为Windows系统开发的、基于NuGet的包管理器工具,类似于Node.js的npm,MacOS的brew,Ubuntu的apt-get,它简称为choco。Chocolatey的设计目标是成为一个去中心化的框架,便于开发_chocolate怎么卸载
文章浏览阅读2.3w次,点赞177次,收藏741次。Python作为21世纪最火的编程语言,市面上各种学习视频层出不穷,关于Python的学习氛围也逐渐浓厚,Python固然简单好上手,但事实上Python也不是那么容易学习的。如果不采取正确的学习方式,很容易走入误区。关于Python的三个谎言,你一定要清楚。1: 学完Python,并不能立马拿一两万的工资,甚至可能找不到工作!2:Python也没有那么简单,不是有手就行!3:别想着1个星期、2个星期就能学会,你至少得腾出一两个月来连续学习!如果你还是执意要学Python,那么好,接下来我们看看怎._关于python 盲目
文章浏览阅读2.1k次。方法一将table标签,包括tr、td等对json数据进行拼接,将table输出到表格上实现,这种方法的弊端在于输出的是伪excel,虽说生成xls为后缀的文件,但文件形式上还是html,代码如下<html><head> <p style="font-size: 20px;color: red;">使用table标签方式将json导出xls文件</p..._如何把js数据转换成表格
IEEE协会是一个专注于航空与电子系统领域的组织,注册IEEE会员可以享受许多权益,包括免费访问协会资源中心和参加各种会议及活动。
文章浏览阅读774次,点赞20次,收藏14次。除了简历做到位,面试题也必不可少,整理了些题目,前面有117道汇总的面试到的题目,后面包括了HTML、CSS、JS、ES6、vue、微信小程序、项目类问题、笔试编程类题等专题。CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
文章浏览阅读3.9k次。var arr = [12,31,42,54,65,12,31,12,42,22];//统计个数var arr2 = {};arr.forEach(function(item){ if(arr2[item]){ arr2[item] += 1; }else{ arr2[item] = 1; }})console.log(arr2);_统计数组中每个数字出现的次数