我希望获得当前的时间戳: 1320917972
int time = (int) (System.currentTimeMillis());
Timestamp tsTemp = new Timestamp(time);
String ts = tsTemp.toString();
答案 0 :(得分:255)
解决方案是:
Long tsLong = System.currentTimeMillis()/1000;
String ts = tsLong.toString();
答案 1 :(得分:78)
来自开发者博客:
System.currentTimeMillis()
是标准"墙"时钟(时间和日期)表示自纪元以来的毫秒数。挂钟可以由用户或电话网络设置(参见setCurrentTimeMillis(long)),因此时间可能会不可预测地向后或向前跳跃。只有在与实际日期和时间对应很重要时,例如在日历或闹钟应用程序中,才应使用此时钟。间隔或经过时间测量应使用不同的时钟。如果您使用System.currentTimeMillis()
,请考虑收听ACTION_TIME_TICK
,ACTION_TIME_CHANGED
和ACTION_TIMEZONE_CHANGED
Intent广播,以了解时间的变化。
答案 2 :(得分:28)
1320917972 是使用自1970年1月1日00:00:00 UTC以来的秒数的Unix时间戳。您可以使用TimeUnit
类进行单位转换 - 来自System.currentTimeMillis()
到秒。
String timeStamp = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()));
答案 3 :(得分:25)
您可以使用SimpleDateFormat类:
SimpleDateFormat s = new SimpleDateFormat("ddMMyyyyhhmmss");
String format = s.format(new Date());
答案 4 :(得分:21)
使用以下方法获取当前时间戳。它对我来说很好。
/**
*
* @return yyyy-MM-dd HH:mm:ss formate date as string
*/
public static String getCurrentTimeStamp(){
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentDateTime = dateFormat.format(new Date()); // Find todays date
return currentDateTime;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
答案 5 :(得分:10)
它的用法很简单:
long millis = new Date().getTime();
如果你想要特定的格式,那么你需要像下面的格式化程序
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String millisInString = dateFormat.format(new Date());
答案 6 :(得分:8)
这是一个可以在文件名中使用的人类可读时间戳, 以防有人需要我需要的东西:
package com.example.xyz;
import android.text.format.Time;
/**
* Clock utility.
*/
public class Clock {
/**
* Get current time in human-readable form.
* @return current time as a string.
*/
public static String getNow() {
Time now = new Time();
now.setToNow();
String sTime = now.format("%Y_%m_%d %T");
return sTime;
}
/**
* Get current time in human-readable form without spaces and special characters.
* The returned value may be used to compose a file name.
* @return current time as a string.
*/
public static String getTimeStamp() {
Time now = new Time();
now.setToNow();
String sTime = now.format("%Y_%m_%d_%H_%M_%S");
return sTime;
}
}
答案 7 :(得分:4)
答案 8 :(得分:2)
我想贡献现代的答案。
String ts = String.valueOf(Instant.now().getEpochSecond());
System.out.println(ts);
现在运行时的输出:
1543320466
虽然除以1000并不会让许多人感到惊讶,但是您自己进行时间转换可能很难很快地阅读,因此在避免时要养成一个坏习惯。
我正在使用的Instant
类是java.time(现代Java日期和时间API)的一部分。它内置于API级别26以上的新Android版本。如果您正在为较旧的Android编程,则可能会获得反向移植,请参见下文。如果您不想这样做,可以理解,我仍然会使用内置转换:
String ts = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()));
System.out.println(ts);
这与Sealskej的回答相同。输出与以前相同。
是的,java.time在较新和较旧的Android设备上均可正常运行。它只需要至少 Java 6 。
org.threeten.bp
导入日期和时间类。java.time
。java.time
。java.time
向Java 6和7(JSR-310的ThreeTen)的反向端口。答案 9 :(得分:1)
只需使用
long millis = new Date().getTime();
获得长时间的当前时间
答案 10 :(得分:1)
科特林解决方案:
val nowInEpoch = Instant.now().epochSecond
请确保您的最低SDK版本为26。
答案 11 :(得分:0)
我建议使用Hits的答案,但添加Locale格式,这就是Android的方法 开发人员recommends:
for
答案 12 :(得分:0)
尝试这些
NotificationCompat.Builder builder = new NotificationCompat.Builder(getActivity()).setSmallIcon(R.mipmap.ic_launcher). setContentTitle("Title").setContentText("Content");
Notification notification = builder.build();
notification.ledARGB = Color.RED;
notification.ledOffMS = 0;
notification.ledOnMS = 0;
notification.flags = notification.flags|Notification.FLAG_SHOW_LIGHTS;
NotificationManager notificationManager = (NotificationManager) getActivity().getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(101, notification);
和时间戳记转换为时间格式
notification.ledOffMS = 0;
notification.ledOnMS = 0;
答案 13 :(得分:0)
此代码是Kotlin版本。我还有另一个想法,在最后一位添加一个随机的随机整数,以提供方差的纪元时间。
科林版
val randomVariance = (0..100).shuffled().first()
val currentEpoch = (System.currentTimeMilis()/1000) + randomVariance
val deltaEpoch = oldEpoch - currentEpoch
我认为使用此Kode会更好,然后依赖android 26或更高版本
答案 14 :(得分:0)
更多关于Kotlin的答案。全班发布,方便复制/粘贴
object Utils {
private const val DEFAULT_TIMESTAMP_FORMAT = "yyyy-MM-dd HH:mm:ss"
/**
* Method is used to get formatted date and time
*
* @return Current date and time
*/
val currentDateTime: String
get() {
val calendar = Calendar.getInstance()
val formatter = SimpleDateFormat(DEFAULT_TIMESTAMP_FORMAT, Locale.US)
return formatter.format(calendar.time)
}
}