0%

Java获取文件拓展名的三种方式

原生Java方式

1
2
3
4
5
6
public Optional<String> getExtensionByStringHandling(String filename) {
return Optional.ofNullable(filename)
.filter(f -> f.contains("."))
.map(f -> f.substring(filename.lastIndexOf(".") + 1));
}

特殊情况:

  • 没有拓展名:该函数返回空字符串
  • 只有拓展名(例如.gitignore):返回gitignore

使用Apache Commons IO包下的FilenameUtils.getExtension工具

1
2
3
public String getExtensionByApacheCommonLib(String filename) {
return FilenameUtils.getExtension(filename);
}

使用Guava Library

1
2
3
4
5
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>24.1.1-jre</version>
</dependency>
1
2
3
public String getExtensionByGuava(String filename) {
return Files.getFileExtension(filename);
}

将UTC(字符串包含TZ的时间)时间转换成本地时间

1
2
3
4
5
6
utc = "2017-07-28T08:28:47.776Z"
UTC_FORMAT = "%Y-%m-%dT%H:%M:%S.%fZ"
utcTime = datetime.datetime.strptime(utc, UTC_FORMAT)
localtime = utcTime + datetime.timedelta(hours=8)
print(localtime)
# 输出:2017-07-28 16:28:47.776000