Majid Kamal Majid Kamal - 1 year ago 314
Java Question

How to remove milliseconds from a timestamp?

I was asked this question :

Given a timestamp as a long value, write a utility function in Java to drop the milliseconds.
For example, given an input of 1274883865399 (actual time: 20100526T14:24:25.399Z), the
function would return 1274883865000 (actual time: 2010-05-26T14:24:25.000Z)

I did this :

import java.text.*;
import java.util.*;

public class ClearMilliSeconds {
public static void main(String[] args) {

long yourmilliseconds = 1274883865399L;
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");
Calendar c = Calendar.getInstance();

Date resultdate = new Date(yourmilliseconds);
c.set(Calendar.MILLISECOND, 0);

But it did not give me the right result

Answer Source

If I understand you correctly there is no need to use Date / Calendar...

long yourmilliseconds = 1274883865399L;
long droppedMillis = 1000 * (yourmilliseconds/ 1000);    


Or... if you wish to have date formatting...

Calendar c = Calendar.getInstance();
c.setTime(new Date(yourmilliseconds));
c.set(Calendar.MILLISECOND, 0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T''Z'");