Java 时间戳字符串拆分以获取日期和时间有效的方式
1) 使用正则表达式、模式 2) 在String类中使用split函数 我尝试过使用分割函数,我认为这不是一个好的编码实践。 使用像这样的“u”迭代数组拆分输入字符串 弦Java 时间戳字符串拆分以获取日期和时间有效的方式,java,regex,string,split,Java,Regex,String,Split,1) 使用正则表达式、模式 2) 在String类中使用split函数 我尝试过使用分割函数,我认为这不是一个好的编码实践。 使用像这样的“u”迭代数组拆分输入字符串 弦 START_READING_20140723_093539.jpg 说明\u 20140723\u 093539.jpg Qunantity_20140723_183539.jpg 结束_READING_20140723_093539.jpg 输入格式为:yyyyMMdd\u HHmmss 输出格式为:23-07-2014
START_READING_20140723_093539.jpg
说明\u 20140723\u 093539.jpg
Qunantity_20140723_183539.jpg
结束_READING_20140723_093539.jpg
输入格式为:yyyyMMdd\u HHmmss
输出格式为:
23-07-2014 6:35:39PM
您可以使用DateFormat将输入解析为java.util.Date或Calendar,并使用第二个DateFormat将其格式化为字符串,使用所需的输出格式。您可以使用DateFormat将输入解析为java.util.Date或Calendar,并使用第二个DateFormat将其格式化为字符串DateFormat与您想要的输出格式
import re
pattern=re.compile(r".*?(\d+)_(\d+).jpg")
print pattern.match(x).groups()
这将为您提供日期和时间。然后您可以使用mktime或python中的其他实用程序以您想要的格式获取它
这将为您提供日期和时间。然后您可以使用mktime或python中的其他实用程序以您想要的格式获取它。您可以尝试类似的方法
String str = "START_READING_20140723_093539.jpg";
Scanner scanner = new Scanner(str.substring(0, str.lastIndexOf('.')));
scanner.useDelimiter("[^\\p{Alnum},\\.-]");
String[] arr=new String[2];
int i=0;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
arr[i]=scanner.next();
i++;
} else {
scanner.next();
}
}
String dateStr=arr[0]+"_"+arr[1];
DateFormat df1=new SimpleDateFormat("yyyyMMdd_HHmmss");
DateFormat df2=new SimpleDateFormat("dd-MM-yyyy HH:mm:ssa");
System.out.println(df2.format(df1.parse(dateStr)));
输出:
23-07-2014 09:35:39AM
你可以试试这样的
String str = "START_READING_20140723_093539.jpg";
Scanner scanner = new Scanner(str.substring(0, str.lastIndexOf('.')));
scanner.useDelimiter("[^\\p{Alnum},\\.-]");
String[] arr=new String[2];
int i=0;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
arr[i]=scanner.next();
i++;
} else {
scanner.next();
}
}
String dateStr=arr[0]+"_"+arr[1];
DateFormat df1=new SimpleDateFormat("yyyyMMdd_HHmmss");
DateFormat df2=new SimpleDateFormat("dd-MM-yyyy HH:mm:ssa");
System.out.println(df2.format(df1.parse(dateStr)));
输出:
23-07-2014 09:35:39AM
对于语句中的任何输入字符串,请考虑例如
"START_READING_20140723_093539.jpg".split("\\.|_")
产生
Array("START", "READING", "20140723", "093539", "jpg")
获取第二个和第三个最后的项,然后按建议应用<代码> java .Text。SimuleDealFrase.< /P> < P>对于语句中的任何输入字符串,考虑例如
"START_READING_20140723_093539.jpg".split("\\.|_")
产生
Array("START", "READING", "20140723", "093539", "jpg")
获取最后的第二个和第三个项目,然后按照建议应用java.text.simpleDataFormat为什么不用于整个项目
import joda.time.format.*;
import joda.time.*;
DateTimeFormatter inputFormat = DateTimeFormat.forPattern("yyyyMMdd'_'HHmmss");
LocalDateTime timestamp = inputFormat.parseLocalDateTime(theString);
DateTimeFormatter outputFormat = DateTimeFormat.forPattern("dd'-'MM'-'yyyy' 'hh':'mm':'ssa");
String output = outputFormat.print(timestamp);
如果您使用的是Java8,那么应该使用Java.time包 为什么不全部使用
import joda.time.format.*;
import joda.time.*;
DateTimeFormatter inputFormat = DateTimeFormat.forPattern("yyyyMMdd'_'HHmmss");
LocalDateTime timestamp = inputFormat.parseLocalDateTime(theString);
DateTimeFormatter outputFormat = DateTimeFormat.forPattern("dd'-'MM'-'yyyy' 'hh':'mm':'ssa");
String output = outputFormat.print(timestamp);
如果您使用的是Java8,那么应该使用Java.time包 好的,我知道你的事了。到目前为止,您尝试了什么?这个问题似乎脱离主题,因为OP没有显示任何努力。字符串s[]=input.split(“”);像这样,然后简化了TEFORMAT解析和格式化方法OK。我明白你的意思了。到目前为止,您尝试了什么?这个问题似乎脱离主题,因为OP没有显示任何努力。字符串s[]=input.split(“”);这样,SimpleDataFormat解析和格式化方法