时间戳与字符串的转换
第一次看到服务端那边以备注---流格式为:{"mDate":"\/Date(-62135596800000)\/"} 这种形式的时间格式上传服务器,换了好多方法还是不行,网上一大堆乱七八糟的方法也没能解决,最后琢磨许久,终于弄出来了:
首先 字符串以时间的格式转换成时间戳,再以时间戳转换为时间格式的字符串即可。
整体代码如下:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class MyTime {
/**
* @param args
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个时间点:");
String timeStr = scanner.nextLine();
long timeLong = getUnixTimestamp(timeStr);
System.out.println("\n输出如下:\n"+ timeStr + " 转换成时间截为:"+ timeLong);
String time2Str = getMyDateString(timeLong);
System.out.println(timeLong + " 转换成字符串为:"+ time2Str);
}
// 获取某个日期的时间戳 (使用该方法)++++++++++=========================
public static long getUnixTimestamp(String time) {
long timestamp;
DateFormat df = new SimpleDateFormat("yyyy"); //具体的时间格式:yyyy-MM-dd hh:mm:ss
Date date = null;
try {
date = df.parse(time);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar cal = Calendar.getInstance();
cal.setTime(date);
timestamp = cal.getTimeInMillis();
String timeStr = String.valueOf(timestamp);
//String subStr = timeStr.substring(0, timeStr.length() - 3);
long timestamp2 = Long.parseLong(timeStr);
return timestamp2;
}
// 时间戳转换成时间类型的字符串 (使用该方法)+++++++++==========================
public static String getMyDateString(long time) {
final Date date = new Date(time);
final SimpleDateFormat format = new SimpleDateFormat(
"yyyy");
return format.format(date);
}
}