📄 srtrecord.java
字号:
package org.jeasylife.tools.subsync;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
/**
* SRTRecord is SRT Record for SRT file.
*
* SRT record includes four field
* id: begin from 1 to n, inc by 1, so can be sort
* startTime: start time for sutitle,count in milli-second
* 00:01:38,500
* hour:minute:second,milli-second
* endTime: end time for subtitle,see above
*
* This class will be put in a Sorted Set or Sorted Map
* @author Owner
*
*/
class SrtRecord implements Comparable<SrtRecord>{
private Integer id;
private Date startTime;
private Date endTime;
private String subtitle;
public SrtRecord(Integer id, Date start, Date end, String subtitle) {
super();
this.id = id;
setStartTime(new Date(start.getTime()));
setEndTime(new Date(end.getTime()));
this.subtitle = subtitle;
}
/**
* @param args
*/
/**
* @param args
*/
public static void main(String[] args) {
Date start = new Date();
start.setTime(2753);
Date end = new Date();
end.setTime(657634563454796L);
SrtRecord record = new SrtRecord(1,start,end,"abc\ndef...\nddd...");
System.out.println(record.toString());
SrtRecord record1 = new SrtRecord(2,end,end,"okok");
System.out.println(record.equals(record1));
System.out.println(SrtRecord.parseTime("sdf").getTime());
}
/**
* @return the endTime
*/
public Date getEndTime() {
return endTime;
}
/**
* @param endTime the endTime to set
*/
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
/**
* @return the id
*/
public Integer getId() {
return id;
}
/**
* @param id the id to set
*/
private void setId(Integer id) {
this.id = id;
}
/**
* @return the startTime
*/
public Date getStartTime() {
return startTime;
}
/**
* @param startTime the startTime to set
*/
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
/**
* @return the subtitle
*/
public String getSubtitle() {
return subtitle;
}
/**
* @param subtitle the subtitle to set
*/
private void setSubtitle(String subtitle) {
this.subtitle = subtitle;
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
// final int PRIME = 31;
// int result = 1;
// result = PRIME * result + ((id == null) ? 0 : id.hashCode());
// could be faster
return id.hashCode();
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final SrtRecord other = (SrtRecord) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
cal.setTime(getStartTime());
//System.out.println("s: "+ cal.getTime().getTime());
StringBuilder sb = new StringBuilder();
sb.append(getId());
sb.append("\r\n");
sb.append(String.format("%02d:%02d:%02d,%03d --> ",
cal.get(Calendar.HOUR),cal.get(Calendar.MINUTE),
cal.get(Calendar.SECOND),cal.get(Calendar.MILLISECOND)));
cal.setTime(getEndTime());
//System.out.println("e: "+ cal.getTime().getTime());
sb.append(String.format("%02d:%02d:%02d,%03d\r\n",
cal.get(Calendar.HOUR),cal.get(Calendar.MINUTE),
cal.get(Calendar.SECOND),cal.get(Calendar.MILLISECOND)));
sb.append(getSubtitle());
sb.append("\r\n");
return sb.toString();
}
public int compareTo(SrtRecord o) {
return this.id.compareTo(o.id);
}
public static Date parseTime(String time){
//time = "00:01:10,345";
String[] sa = time.split("[:,]");
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
cal.setTimeInMillis(0);
cal.set(Calendar.HOUR, Integer.parseInt(sa[0]));
cal.set(Calendar.MINUTE, Integer.parseInt(sa[1]));
cal.set(Calendar.SECOND, Integer.parseInt(sa[2]));
cal.set(Calendar.MILLISECOND, Integer.parseInt(sa[3]));
return cal.getTime();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -