【问题标题】:toLocaleString() is not working in Android for React NativetoLocaleString() 在 Android 中不适用于 React Native
【发布时间】:2019-11-11 07:59:16
【问题描述】:

我正在尝试在我的应用程序中使用一些日期格式。

假设我得到像"1573457092953.63" 这样的日期戳 我正在尝试按照以下格式进行操作。

"11/11/2019, 1:17:00"

所以,我使用了date.toLocaleString()

它在 iOS 中运行良好,但在 Android 中出现问题。

In iOS getting like 11/11/2019, 1:17:00 PM
Android getting like Mon Nov 11 1:17:00

如何解决这个问题,即使我没有从其他论坛得到任何东西。

有什么建议吗?

【问题讨论】:

  • 试试看momentJS

标签: javascript android react-native timestamp datetime-format


【解决方案1】:

很遗憾,toLocaleString() 不适用于 Android。请检查以下link

解决方法是创建自定义映射并使用它:

const dateTimeMapping = {
        en: {
            onlyTime: 'h:mm A',
            shortDate: 'ddd, D MMMM',
            longDate: 'D MMMM YYYY h:mm A',
        },
        de: {
            onlyTime: 'H:mm',
            shortDate: 'ddd, D. MMMM',
            longDate: 'LLL',
        },
        it: {
            onlyTime: 'H:mm',
            shortDate: 'ddd D MMMM',
            longDate: 'D MMMM YYYY HH:MM',
        },
 }

传递语言环境属性和格式的类型:

const result = dateTimeMapping[locale][type];

关于数字格式,可以阅读更多here

【讨论】:

    【解决方案2】:

    我终于找到了一个名为

    的库

    瞬间

    "moment": "^2.24.0" // in package.json file
    
    import Moment from 'moment';
    
    Moment(date).format('DD/MM/YYYY, hh:mm:ss')
    Output is 11/11/2019, 1:17:00
    

    希望这对将来的某人有所帮助。

    它适用于 iOS 和 Andorid 域。

    【讨论】:

      猜你喜欢
      • 2022-01-11
      • 2020-03-25
      • 2017-06-08
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      相关资源
      最近更新 更多