如何根据自己的喜好格式化java.sql时间戳? (到字符串,用于显示目的)
答案 0 :(得分:155)
java.sql.Timestamp
延伸java.util.Date
。你可以这样做:
String s = new SimpleDateFormat("MM/dd/yyyy").format(myTimestamp);
或者还包括时间:
String s = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(myTimestamp);
答案 1 :(得分:24)
使用String.format(或java.util.Formatter):
Timestamp timestamp = ...
String.format("%1$TD %1$TT", timestamp)
修改强>
请参阅Formatter的文档以了解TD和TT的含义:点击java.util.Formatter
第一个'T'代表:
't', 'T' date/time Prefix for date and time conversion characters.
和'T'后面的字符:
'T' Time formatted for the 24-hour clock as "%tH:%tM:%tS".
'D' Date formatted as "%tm/%td/%ty".
答案 2 :(得分:9)
针对此特定问题,java.text.SimpleDateFormat
的标准建议有效,但却产生了SimpleDateFormat
is not thread-safe 的不幸副作用,并且可能是令人讨厌的问题,因为它会在多线程场景中破坏你的输出,你不会得到任何例外!
我会强烈建议您查看Joda这样的内容。为什么?对于Java来说,这是一个比当前库更丰富,更直观的时间/日期库(以及即将推出的新标准Java日期/时间库的基础,因此您将学习一个即将成为标准的库API)。
答案 3 :(得分:8)
如果您正在使用MySQL并希望数据库本身执行转换,请使用以下命令:
如果您更喜欢使用Java格式化,请使用:
SimpleDateFormat dateFormat = new SimpleDateFormat("M/dd/yyyy");
dateFormat.format( new Date() );
答案 4 :(得分:2)
使用DateFormat
。在国际化应用程序中,使用getInstance
提供的格式。如果您想明确控制格式,请自己创建一个新的SimpleDateFormat
。
答案 5 :(得分:0)
我正在提供现代答案。 MyChart
类是在已经设计不良的Your code raises an exception. The following is the traceback of the failure:
File "<ipython-input-5-25a0c5c7dd52>", line 32, in classifier
if ys[i,:] * np.dot(w.T, xs[i,:]) <= 0:
def classifier(xs,ys):
xs : n input vectors of d dimensions (nxd)
ys : n labels (-1 or +1)
m = 0
while m < 100:
m = 0
for i in xs:
if ys[i] * np.dot(w.T, xs[i]) <= 0: # <--- error
# do stuff
m = m + 1
if m == 0:
break
类之上的一个hack,并且已经过时了。不过,我假设您是从旧版API获取Timestamp
的,而您现在无法负担升级到java.time的费用。完成此操作后,请将其转换为现代的java.util.Date
,然后从那里进行进一步处理。
Timestamp
我所在时区的输出:
07.09.2019 23:02:03
通过指定Instant
, DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
.withLocale(Locale.GERMAN);
Timestamp oldfashionedTimestamp = new Timestamp(1_567_890_123_456L);
ZonedDateTime dateTime = oldfashionedTimestamp.toInstant()
.atZone(ZoneId.systemDefault());
String desiredFormat = dateTime.format(formatter);
System.out.println(desiredFormat);
,FormatStyle.SHORT
或.MEDIUM
选择所需格式的长度。选择您自己放置.LONG
的语言环境。并选择所需的时区,例如.FULL
。 Locale.GERMAN
是没有时区的时间点,因此我们需要一个时区才能将其转换为年,月,日,小时,分钟等。如果您的ZoneId.of("Europe/Oslo")
来自类型Timestamp
的数据库值没有时区(通常不建议使用,但不幸的是经常看到),Timestamp
可能会为您提供正确的结果。在这种情况下,另一个更简单的选择是使用timestamp
转换为ZoneId.systemDefault()
,然后以与LocalDateTime
相同的方式格式化oldfashionedTimestamp.toLocalDateTime()
。 / p>
答案 6 :(得分:-8)
String timeFrSSHStr = timeFrSSH.toString();