2015-08-13 95 views
2

我使用AngularJS通過HTML通過用戶輸入分別獲取日期和時間。但時間戳是我的數據庫中的單個列。如何合併來自一個時間戳的日期和來自另一個時間戳的時間?

日期和時間字段是我的Java服務器中兩個不同的時間戳。

Date --> 2015-11-11 00:00:00.0 
Time --> 1970-01-01 23:11:00.0 

我想日期部分的日期和時間部分由時間作爲時間戳結合並插入到我的數據庫

DateTime --> 2015-11-11 23:11:00.0 
+0

您使用JodaTime庫輸出? –

+0

@NiteshVirani不,我沒有使用任何外部庫。 – codernac

+0

你知道這些值是否在UTC時區嗎? –

回答

2

假設你能夠創建這些作爲java.util.Date對象,你可以依靠他們的milleseconds從時代獲取此信息:

long dateMills = date.getTime(); 
long timeMills = time.getTime(); 

long dateTimeMills = dateMills + timeMills(); 

long dateTime = new Date(dateTimeMills); 

或者,您可以單獨設置字段。

GregorianCalendar dateCal = new GregorianCalendar(); 
GregorianCalendar timeCal = new GregorianCalendar(); 

dateCal.setTime(date.getTime()); 
timeCal.setTime(time.getTime()); 

int year = dateCal.get(Calendar.YEAR); 
int month = dateCal.get(Calendar.MONTH); 
int day = dateCal.get(Calendar.DAY_OF_MONTH); 

int hour = timeCal.get(Calendar.HOUR); 
int minute = timeCal.get(Calendar.MINUTE); 
int second = timeCal.get(Calendar.SECOND); 

GregorianCalendar dateTimeCal = new GregorianCaledar(year, month, day, hour, minute, second); 
Date dateTime = dateTimeCal.getTime(); 
0

您可以簡單地使用String.split並創建所需的String日期並根據需要使用它。

SimpleDateFormat formatter = new SimpleDateFormat("hh:mm a"); 
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String dateInString = "12:30 AM"; 
String dateInString2 = "2017-10-16 10:00:00"; 
try { 
    Date date1 = formatter.parse(dateInString); 
    Date date2 = formatter2.parse(dateInString2); 
    String[] d1 = formatter2.format(date1).split(" "); 
    String[] d2 = formatter2.format(date2).split(" "); 
    String neededDate = d2[0] + " " + d1[1]; 
    System.out.println(date1); 
    System.out.println(formatter2.format(date1)); 
    System.out.println(formatter2.format(date2)); 
    System.out.println(neededDate); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 

Thu Jan 01 00:30:00 IST 1970 
1970-01-01 00:30:00 
2017-10-16 10:00:00 
2017-10-16 00:30:00 
相關問題