• Intro Headers Instructions Macros Commands
Fork me on GitHub
    • Getting Started
      • Introduction
      • How to install bnd
      • Guided Tour Workspace & Projects
      • bnd / bndlib Features and JAR Wrapping Techniques
      • FAQ - Frequently Asked Questions
    • Concepts and Practices
      • Concepts
      • Background
      • Best practices
    • Build and Development
      • Build
      • Generating JARs
      • Versioning
      • Baselining
      • Service Components
      • Metatype
      • Contracts
      • Bundle Annotations
      • Accessor Properties
      • SPI Annotations
    • Dependency and Launching
      • Resolving Dependencies
      • Launching
      • Startlevels
    • Testing
      • Testing
      • Testing with Launchpad
    • Packaging and Distribution
      • Packaging Applications
      • JPMS Libraries
      • Wrapping Libraries to OSGi Bundles
    • Documentation and Tools
      • Generating Documentation
      • bnd CLI Commands
      • For Developers
      • Templates for Workspaces
      • Tips for Windows users
      • Tools bound to bnd
    • Reference Material
      • Reference
      • Headers
      • Instruction Reference
      • Instruction Index
      • Macro Reference
      • Macro Index
      • Plugins
      • External Plugins
    • Configuration and Troubleshooting
      • Settings
      • Errors
      • Warnings
  • tstamp ( ';' DATEFORMAT ( ';' TIMEZONE ( ';' LONG )? )? )?

    Prev Next
    Macro
    Generate a formatted timestamp

    Summary

    The tstamp macro creates a formatted timestamp string using a custom date format pattern, timezone, and optional timestamp value.

    Syntax

    ${tstamp[;<format>[;<timezone>[;<millis>]]]}
    

    Parameters

    • format (optional) - Date format pattern (default: “yyyyMMddHHmm”)
    • timezone (optional) - Timezone ID (default: “UTC”)
    • millis (optional) - Timestamp in milliseconds (default: current time)

    Behavior

    • Formats current time by default
    • Uses SimpleDateFormat patterns
    • Default format: “yyyyMMddHHmm”
    • Default timezone: UTC
    • All parameters are optional

    Examples

    Default format (UTC):

    ${tstamp}
    # Returns: "202411201030" (example)
    

    Custom format:

    ${tstamp;yyyy-MM-dd HH:mm:ss}
    # Returns: "2024-11-20 10:30:45"
    

    With timezone:

    ${tstamp;yyyy-MM-dd HH:mm;America/New_York}
    # Returns: "2024-11-20 05:30"
    

    ISO 8601 format:

    ${tstamp;yyyy-MM-dd'T'HH:mm:ss'Z'}
    # Returns: "2024-11-20T10:30:45Z"
    

    Specific timestamp:

    ${tstamp;yyyy-MM-dd;;1700000000000}
    # Formats the provided timestamp
    

    Build timestamp in manifest:

    Build-Timestamp: ${tstamp;yyyy-MM-dd HH:mm:ss z;UTC}
    

    Use Cases

    • Creating build timestamps
    • Generating unique version qualifiers
    • Formatting dates for manifests
    • Creating timestamped file names
    • Documentation generation
    • Build reproducibility tracking

    Notes

    • Uses Java SimpleDateFormat patterns
    • Default timezone is UTC
    • For current time in millis, use ${currenttime}
    • For conversion from millis, use ${long2date}
    • Format patterns are locale-independent
    • Common patterns: yyyy (year), MM (month), dd (day), HH (hour 24), mm (minute), ss (second)
    • See also: ${currenttime}, ${long2date}, ${now}

    See test cases in MacroTestsForDocsExamples.java

Prev Next
Search
    • Home