1

我希望获取系统时间戳并将其附加到文件名

Scenario: fielanem timestamp
* def filename = 'samplefilename.txt'
* def timestamp = java.type("java.time.localdatetime").now()
* print timestamp

我需要获取当前时间戳并将其附加到文件名。输出:样本文件名YYYYMMDDHHMMSS.txt

4

2 回答 2

2

日期时间 APIjava.util及其格式化 APISimpleDateFormat已过时且容易出错。我建议您应该完全停止使用它们并切换到现代日期时间 API。使用现代日期时间和格式化 API,您可以执行以下操作:

* def getDate =
  """
  function() {
    var DateTimeFormatter = Java.type('java.time.format.DateTimeFormatter');
    var dtf = DateTimeFormatter.ofPattern('uuuuMMddHHmmss');
    var ldt = java.time.LocalDateTime.now();
    return ldt.format(dtf);
  } 
  """

* def temp = getDate()
* print temp
* def filename = 'samplefilename.txt'
* def finalfilename = filename.split('.')[0]+temp+'.txt'
* print finalfilename

在Trail: Date Time了解有关现代日期时间 API 的更多信息。

请注意,LocalDateTime.now()返回 JVM 时区中的日期时间,即它给出的值等于LocalDateTime.now(ZoneId.systemDefault()). 如果您想获取具有特定时区偏移量的本地日期时间,例如时区偏移量为+00:00小时 ie ZoneOffset.UTC,您需要使用LocalDateTime now(ZoneId zone)eg LocalDateTime.now(ZoneOffset.UTC)

于 2020-11-03T18:57:57.323 回答
2

对于时间戳,您可以使用

* def getDate =
  """
  function() {
    var SimpleDateFormat = Java.type('java.text.SimpleDateFormat');
    var sdf = new SimpleDateFormat('yyyyMMddHHmmss');
    var date = new java.util.Date();
    return sdf.format(date);
  } 
  """

* def temp = getDate()
* print temp
* def filename = 'samplefilename.txt'
* def finalfilename = filename.split('.')[0]+temp+'.txt'
* print finalfilename
于 2020-11-03T18:02:10.087 回答